<!DOCTYPE html>
<html>
  <!-- meta/link... -->
  



<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
  <!-- Global site tag (gtag.js) - Google Analytics -->


  <title>副业思维 | 老顾的个人博客网站</title>

  <link rel="icon" type="image/x-icon, image/vnd.microsoft.icon" href="/my-blog/favicon.ico">
  <link rel="stylesheet" href="https://at.alicdn.com/t/font_1911880_c1nvbyezg17.css">
  <link href="https://unpkg.com/@fortawesome/fontawesome-free/css/all.min.css" rel="stylesheet">
  <link href="/my-blog/js/swiper/swiper@5.4.1.min.css" rel="stylesheet">
  
  
  
  
<link rel="stylesheet" href="/my-blog/css/animate.min.css">

  
<link rel="stylesheet" href="/my-blog/css/style.css">

  
  
    
<link rel="stylesheet" href="/my-blog/js/fancybox/jquery.fancybox.min.css">

  
  
    
<link rel="stylesheet" href="/my-blog/js/shareJs/share.min.css">

  
  <style>
        @media (max-width: 992px) {
            #waifu {
                display: none;
            }
        }
    </style>
    <script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
    <link href="//cdn.bootcss.com/pace/1.0.2/themes/pink/pace-theme-flash.css" rel="stylesheet">

    
        <script src="/my-blog/js/valine/index.js"></script>
    

    <!-- import link -->
    
        
            
        
            
        
    
    <!-- import script -->
    
        
            
        
            
        
    

<meta name="generator" content="Hexo 6.3.0"></head>

  
  <!-- 依赖于jquery和vue -->
  
    
<script src="https://unpkg.com/jquery@3.5.1/dist/jquery.min.js"></script>

  

  
    
<script src="https://unpkg.com/vue@2.6.11/dist/vue.min.js"></script>

  
  
  <!-- 预加载动画 -->
  <!-- 页面预加载动画 -->

  
    <div class="preloader_3" id="loader">
  <div class="bar">
    <div class="ball"></div>
  </div>
</div>

  
<script>
  var endLoading = function () {
    document.body.style.overflow = 'auto';
    document.getElementById('loader').classList.add("loading");
  }
  window.addEventListener('DOMContentLoaded',endLoading);
</script>

  <body>
    <!-- 判断是否为暗黑风格 -->
    <!-- 判断是否为黑夜模式 -->
<script>
  let isDark = JSON.parse(localStorage.getItem('dark')) || JSON.parse('false');

  if (isDark) {
    $(document.body).addClass('darkModel');
  }
</script>

    <!-- 需要在上面加载的js -->
    <script>
  function loadScript(src, cb) {
    return new Promise(resolve => {
      setTimeout(function () {
        var HEAD = document.getElementsByTagName("head")[0] || document.documentElement;
        var script = document.createElement("script");
        script.setAttribute("type", "text/javascript");
        if (cb) {
          if (JSON.stringify(cb)) {
            for (let p in cb) {
              if (p == "onload") {
                script[p] = () => {
                  cb[p]()
                  resolve()
                }
              } else {
                script[p] = cb[p]
                script.onload = resolve
              }
            }
          } else {
            script.onload = () => {
              cb()
              resolve()
            };
          }
        } else {
          script.onload = resolve
        }
        script.setAttribute("src", src);
        HEAD.appendChild(script);
      });
    });
  }

  //https://github.com/filamentgroup/loadCSS
  var loadCSS = function (src) {
    return new Promise(resolve => {
      setTimeout(function () {
        var link = document.createElement('link');
        link.rel = "stylesheet";
        link.href = src;
        link.onload = resolve;
        document.getElementsByTagName("head")[0].appendChild(link);
      });
    });
  };

</script> 

<!-- 轮播图所需要的js -->
<script src="/my-blog/js/swiper/swiper.min.js"></script>
<script src="/my-blog/js/swiper/vue-awesome-swiper.js"></script>
<script src="/my-blog/js/swiper/swiper.animate1.0.3.min.js"></script>

<script type="text/javascript">
  Vue.use(window.VueAwesomeSwiper)
</script>


  <script src="/my-blog/js/vue-typed-js/index.js"></script>


<!-- 首页的公告滚动插件的js需要重新加载 -->
<script src="/my-blog/js/vue-seamless-scroll/index.js"></script>

<!-- 打字机效果js -->
<script src="https://unpkg.com/typed.js@2.0.11"></script>


    <div id="safearea">
      <main class="main" id="pjax-container">
        <!-- 头部导航 -->
        
<header class="header  " 
  id="navHeader"
  style="position: fixed;
  left: 0; top: 0; z-index: 10;width: 100%;"
>
  <div class="header-content">
    <div class="bars">
      <div id="appDrawer" class="sidebar-image">
  <div class="drawer-box-icon">
    <i class="fas fa-bars" aria-hidden="true" @click="showDialogDrawer"></i>
  </div>
  
  <transition name="fade">
    <div class="drawer-box_mask" v-cloak style="display: none;" v-show="visible" @click.self="cancelDialogDrawer">
    </div>
  </transition>
  <div class="drawer-box" :class="{'active': visible}">
    <div class="drawer-box-head bg-color">
      <img class="drawer-box-head_logo lazyload placeholder" src="/my-blog/medias/logo.png" class="lazyload placeholder" data-srcset="/my-blog/medias/logo.png" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="logo">
      <h3 class="drawer-box-head_title">老顾的个人博客网站</h3>
      <h5 class="drawer-box-head_desc">芝兰生于幽谷，不已无人而不芳</h5>
    </div>
    
    <div class="drawer-box-content">
      <ul class="drawer-box-content_menu">
        
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="/my-blog/" class="drawer-menu-item-link">
                  
                    <i class="fas fa-home" aria-hidden="true"></i>
                  
                  <span class="name">首页</span>
                </a>
              
            </li>
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="/my-blog/archives" class="drawer-menu-item-link">
                  
                    <i class="fas fa-archive" aria-hidden="true"></i>
                  
                  <span class="name">归档</span>
                </a>
              
            </li>
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="/my-blog/tags" class="drawer-menu-item-link">
                  
                    <i class="fas fa-tags" aria-hidden="true"></i>
                  
                  <span class="name">标签</span>
                </a>
              
            </li>
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="/my-blog/categories" class="drawer-menu-item-link">
                  
                    <i class="fas fa-bookmark" aria-hidden="true"></i>
                  
                  <span class="name">分类</span>
                </a>
              
            </li>
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="/my-blog/about" class="drawer-menu-item-link">
                  
                  <span class="name">关于</span>
                </a>
              
            </li>
          
            <li class="drawer-box-content_item" style="position: relative;">
              
                <a href="javascript:;" class="drawer-menu-item-link has-children" @click="openOrCloseMenu(5)">
                  <span>
                    
                      <i class="fas fa-link"></i>
                    
                    <span class="name">更多</span>
                  </span>
                  <i class="fas fa-chevron-left arrow " :class="{'icon-rotate': isOpen(5)}" aria-hidden="true"></i>
                </a>
                <ul class="drawer-sub-menu" v-if="isOpen(5)">
                  
                  <li>
                    <a href="/my-blog/gallery">
                      
                      <i class="fas fa-music" style="margin-top: -20px;"></i>
                      
                      <span>图库</span>
                    </a>
                  </li>
                  
                  <li>
                    <a target="_blank" rel="noopener" href="http://baidu.com">
                      
                      <i class="fas fa-film" style="margin-top: -20px;"></i>
                      
                      <span>百度</span>
                    </a>
                  </li>
                  
                </ul>
              
            </li>
          
        
        
          <li class="drawer-box-content_item">
            <a target="_blank" rel="noopener" href="https://github.com/Engineer-Gu">
              <i class="fas fa-github" aria-hidden="true"></i>
              <span>Github</span>
            </a>
          </li>
        
      </ul>
    </div>
  </div>
</div>

<script>
  var body = document.body || document.documentElement || window;
  var vm = new Vue({
    el: '#appDrawer',
    data: {
      visible: false,
      top: 0,
      openArr: [],
    },
    computed: {
    },
    mounted() {
    },
    methods: {
      isOpen(index) {
        if (this.openArr.includes(index)) {
          return true;
        } else {
          return false;
        }
      },
      openOrCloseMenu(curIndex) {
        const index = this.openArr.indexOf(curIndex);
        if (index !== -1) {
          this.openArr.splice(index, 1);
        } else {
          this.openArr.push(curIndex);
        }
      },
      showDialogDrawer() {
        this.visible = true;
        // 防止页面滚动，只能让弹框滚动
        this.top = $(document).scrollTop()
        body.style.cssText = 'width: 100%; height: 100%;overflow: hidden;';
      },
      cancelDialogDrawer() {
        this.visible = false;
        body.removeAttribute('style');
        $(document).scrollTop(this.top)
      }
    },
    created() {}
  })
</script>

    </div>
    <div class="blog-title" id="author-avatar">
      
        <div class="avatar">
          <img src="/my-blog/medias/logo.png" class="lazyload placeholder" data-srcset="/my-blog/medias/logo.png" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="logo">
        </div>
      
      <a href="/my-blog/" class="logo">老顾的个人博客网站</a>
    </div>
    <nav class="navbar">
      <ul class="menu">
        
          
            <li class="menu-item" style="position: relative;">
              
                <a href="/my-blog/" class="menu-item-link" title="首页">
                  
                    <i class="fas fa-home" aria-hidden="true"></i>
                  
                  <span class="name">首页</span>
                </a>
              
            </li>
          
            <li class="menu-item" style="position: relative;">
              
                <a href="/my-blog/archives" class="menu-item-link" title="归档">
                  
                    <i class="fas fa-archive" aria-hidden="true"></i>
                  
                  <span class="name">归档</span>
                </a>
              
            </li>
          
            <li class="menu-item" style="position: relative;">
              
                <a href="/my-blog/tags" class="menu-item-link" title="标签">
                  
                    <i class="fas fa-tags" aria-hidden="true"></i>
                  
                  <span class="name">标签</span>
                </a>
              
            </li>
          
            <li class="menu-item" style="position: relative;">
              
                <a href="/my-blog/categories" class="menu-item-link" title="分类">
                  
                    <i class="fas fa-bookmark" aria-hidden="true"></i>
                  
                  <span class="name">分类</span>
                </a>
              
            </li>
          
            <li class="menu-item" style="position: relative;">
              
                <a href="/my-blog/about" class="menu-item-link" title="关于">
                  
                  <span class="name">关于</span>
                </a>
              
            </li>
          
            <li class="menu-item" style="position: relative;">
              
                <a href="javascript:;" class="menu-item-link" title="更多">
                  
                    <i class="fas fa-link"></i>
                  
                  <span class="name">更多</span>
                  <i class="fas fa-chevron-down arrow" aria-hidden="true"></i>
                </a>
                <ul class="sub-menu">
                  
                  <li>
                    <a href="/my-blog/gallery">
                      
                      <i class="fas fa-music" style="margin-top: -20px;"></i>
                      
                      <span>图库</span>
                    </a>
                  </li>
                  
                  <li>
                    <a target="_blank" rel="noopener" href="http://baidu.com">
                      
                      <i class="fas fa-film" style="margin-top: -20px;"></i>
                      
                      <span>百度</span>
                    </a>
                  </li>
                  
                </ul>
              
            </li>
          
        
      </ul>
      
      
        <div id="appSearch">
  <div class="search"  @click="showDialog()"><i class="fas fa-search" aria-hidden="true"></i></div>
  <transition name="fade">
    <div class="message-box_wrapper" style="display: none;" v-cloak v-show="dialogVisible" @click.self="cancelDialogVisible()">
      <div class="message-box animated bounceInDown">
        <h2>
          <span>
            <i class="fas fa-search" aria-hidden="true"></i>
            <span class="title">本地搜索</span>
          </span>
          <i class="fas fa-times close" pointer style="float:right;" aria-hidden="true" @click.self="cancelDialogVisible()"></i>
        </h2>
        <form class="site-search-form">
          <input type="text"
            placeholder="请输入关键字"
            id="local-search-input" 
            @click="getSearchFile()"
            class="st-search-input"
            v-model="searchInput"
          />
        </form>
        <div class="result-wrapper">
          <div id="local-search-result" class="local-search-result-cls"></div>
        </div>
      </div>
    </div>
  </transition>
</div>
<script src="/my-blog/js/local_search.js"></script>
<script>
  var body = document.body || document.documentElement || window;
  var vm = new Vue({
    el: '#appSearch',
    data: {
      dialogVisible: false,
      searchInput: '',
      top: 0,
    },
    computed: {
    },
    mounted() {
      window.addEventListener('pjax:complete', () => {
        this.cancelDialogVisible();
      })
    },
    methods: {
      showDialog() {
        this.dialogVisible = true;
        // 防止页面滚动，只能让弹框滚动
        this.top = $(document).scrollTop()
        body.style.cssText = 'overflow: hidden;';
      },
      getSearchFile() {
        if (!this.searchInput) {
          getSearchFile("/my-blog/search.xml");
        }
      },
      cancelDialogVisible() {
        this.dialogVisible = false;
        body.removeAttribute('style');
        $(document).scrollTop(this.top)
      },
    },
    created() {}
  })
</script>
<!-- 解决刷新页面闪烁问题，可以在元素上添加display: none, 或者用vue.extend方法，详情：https://blog.csdn.net/qq_31393401/article/details/81017912 -->
<!-- 下面是搜索基本写法 -->
<!-- <script type="text/javascript" id="local.search.active">
  var inputArea = document.querySelector("#local-search-input");
  inputArea.onclick   = function(){ getSearchFile(); this.onclick = null }
  inputArea.onkeydown = function(){ if(event.keyCode == 13) return false }
</script> -->

      

    </nav>
  </div>
  
    <a target="_blank" rel="noopener" href="https://github.com/Engineer-Gu" class="github-corner color-primary" aria-label="View source on GitHub"><svg width="60" height="60" viewBox="0 0 250 250" style="fill:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
  
  
    <div id="he-plugin-simple"></div>
    <script>
      WIDGET = {
        CONFIG: {
          "modules": "012",
          "background": 5,
          "tmpColor": "4A4A4A",
          "tmpSize": 16,
          "cityColor": "4A4A4A",
          "citySize": 16,
          "aqiSize": 16,
          "weatherIconSize": 24,
          "alertIconSize": 18,
          "padding": "10px 10px 10px 10px",
          "shadow": "1",
          "language": "auto",
          "borderRadius": 5,
          "fixed": "false",
          "vertical": "middle",
          "horizontal": "center",
          "key": "2784dd3fcb1e4f0f9a9b579bf69641f2"
        }
      }
    </script>
    <script src="https://widget.qweather.net/simple/static/js/he-simple-common.js?v=2.0"></script> 
    
</header>
        <!-- 内容区域 -->
        
 <!-- prismjs 代码高亮 -->
 


<div class="bg-dark-floor" style="position: fixed;left: 0;top: 0;width: 100%;height: 100%;z-index: -1;"></div>


  <!-- 文章详情页顶部图片和标题 -->




<div class="post-detail-header" id="thumbnail_canvas" style="background-repeat: no-repeat; background-size: cover; 
  background-position: center center;position: relative;background-image:url('https://pic3.zhimg.com/v2-a5267dfbf175991d4b3a69b41f3f678a_b.jpg')">
  <div class="post-detail-header-mask"></div>
  <canvas id="header_canvas"style="position:absolute;bottom:0;pointer-events:none;"></canvas>
  
  <div class="post-detail-header_info-box">
    <div class="title-box">
      <span class="title">
        副业思维
      </span>
    </div>
    
    
      
        <span class="post-detail-header_date">
          <i class="fas fa-calendar"></i> 发表于：2023-10-01 |
        </span>
      

      

      
        <div class="post-detail-header_wordcount">
          <span class="totalcount">
            <i class="fas fa-file-text-o"></i> 字数统计: 18.7k |
          </span>
  
          <span class="min2read">
            <i class="fas fa-clock"></i> 阅读时长: 63分钟 |
          </span>
  
          
            <span class="reading">
              <i class="fas fa-eye"></i> 阅读量：<span id="busuanzi_value_page_pv"></span>
            </span>
          
        </div>
      
    
  </div>
  
  
    <script src="/my-blog/js/bubble/bubble.js"></script>
  
</div>





<div class="post-detail-content post-row" 
  style="padding-top: 0px;">
  <div class="main-content">
    <article class="post post-detail">
      <div class="post-content">
        <p>下面是我学习的夏鹏《副业思维》课程所做的笔记记录，内容很干，希望看了对你有所帮助~</p>
<p>遇到问题先问是什么和为什么，然后定出一套针对该问题相应的原则，利用原则去反推怎么做</p>
<h2 id="财富的本质"><a href="#财富的本质" class="headerlink" title="财富的本质"></a>财富的本质</h2><p>什么是财富？</p>
<ul>
<li>钱只是一种财富的测量工具而已，他有多少钱？</li>
<li>钱只是财富交易的载具，有一套花2个亿买的房，算不算有钱？</li>
<li>不要以消费者角度看待财富，消费主义陷阱</li>
<li>财富的本质是一种选择权，你是选择躺平还是被迫躺平？&#x2F;你是选择奋斗还是被迫奋斗？</li>
</ul>
<p>怎么选择才能积累财富？</p>
<ul>
<li>无财做力【时间换钱-劳动力】</li>
<li>少有斗智【知识换钱-信息】</li>
<li>既饶挣时【钱换机会-选择权】</li>
</ul>
<p>赚钱三句话：</p>
<ol>
<li>去有钱的地方赚钱？—市场需求</li>
<li>跟有钱的人赚钱—资源组合</li>
<li>赚有钱人的钱—人群导向</li>
</ol>
<p>不存在躺赢或者可以长期躺赢的生意</p>
<p>选择副业的时候，除了赚钱以外，请你用你的爱好&#x2F;兴趣&#x2F;擅长去掩盖痛苦，不要仅仅是为了钱，否则它跟你的主业也不会有什么太大的区别</p>
<p>如果你的主业都干不明白，那还是不要去做副业</p>
<p>三个钱包：自己的钱+借的钱+调用的钱</p>
<p>你为了消费而去赚钱，往往是赚不到钱，因为你月底是利用了一种赚钱的模式，把钱拿来之后，你又去交易到另外一个地方上了，你最后拿到的是服务和物，未必真拿到了财富</p>
<p>交易的最低层次是消费，再高一个层次是投资，当消费概念被投资替代以后，你投资就会有想法，你的想法就可以融资</p>
<p>任何的投资，只有退出了才叫真正的财富盈余，没有退出之前，我们只能管它叫浮盈或者浮亏，所以任何的投资，我们只有在他完成退出的那个刹那点上，我们才能说这个钱叫落袋为安，完成了财富了交易的过程，这个才算是你的财富，否则都只是物，或者说是资产</p>
<p>不能马上卖掉的，不能马上变现的东西，我们并不一定能说这一定就是财富，只有完成了变现，这个钱才是你真正自己的钱</p>
<p>你花出去的钱，其实已经不叫钱了，只是你购买的物或者是服务</p>
<p>什么叫消费主义陷阱？</p>
<p>ps：买LV包就是炫耀，体现身份的一种消费主义陷阱的表现，有LV包还要全部配一套，这就叫反复购买</p>
<ul>
<li>角度一：用不属于你的钱买一个你不需要的东西</li>
<li>角度二：跟炫耀有关，跟身份有关，跟反复去购买有关</li>
</ul>
<p>消费主义也是未来自己去看待副业，搞钱的一个非常重要的视角和工具</p>
<p>注意：我们自己不要陷入消费主义的陷阱，但是我们设计出来的产品它一定要有消费主义的属性，否则你卖不动</p>
<p>你做生意，本质会落在一件事，叫决策，你怎么决策？我到底是要买还是要卖？我到底要跟谁合作？我应该怎么去定价？我应该解决消费者的什么问题？有什么问题我是不解决的？我跟竞争对手之间应该怎么去联合？应该怎样去竞争？这些事情本质上都是选择权，也就是做决策</p>
<p>富人是选择躺平，绝大部分人是选择被迫躺平，大佬们是选择奋斗，而大部分人是被迫奋斗</p>
<p>我们要选择做生意的时候，选择做什么会变得非常的关键，因为我们今天的选择，我们今天的投入，我们今天的模式，会让未来，让我们的财富积累到一个量级之后，我们拥有更多的选择权，而这个选择权可以去交在下一代的手里，让下一代又更多的选择权，而不是被迫选择</p>
<p>跟钱相关的，你要么有时间，要么有知识，当然，钱自身也是资源，我们最终拿钱来pk拿选择权的机会，没有钱千万不要去借钱</p>
<p>副业，你要把它想象成一面容器或者说是镜子，你想它出来什么，你往里面投什么，啥意思呢？如果你想现在做副业未来能获得更多的时间，那你现在就把时间投进去，你希望未来能出现更多的知识，你就把知识投进去，你希望未来更多的出来的是钱，你就把钱投进去</p>
<p>你一开始做的副业只有时间的，你把时间投进去它出来的未必马上会变成钱，它有可能是帮你省时的一件事，你通过省时来换时间</p>
<p>哪怕是无财做力，你也要把每一次力打在时间效率上，你要通过每一次做去复盘，并且提效，这件事情是赚钱的核心要素，提高效率非常重要</p>
<p>花一样的时间，要产生不同的效果，要让自己的时间变得比别人的时间更值钱，更有效率，你才能完成从无财做力到少有斗智</p>
<p>生意，初级阶段是自己做，跨越一下就是雇佣了，雇人还是干一份工，本质上是把你解放出来，要帮你省时间</p>
<p>扔知识到副业中要产生钱出来，要具备可复制性和传播性</p>
<p>没有投入就没有产出，副业只是一个放大器，它把你投入的东西成倍的放大出来，所以我们要把这个放大器的比率调高</p>
<p>你想挣一百万，有个公式叫：a*b+c，a是你的优势，b是你的平台&#x2F;赛道&#x2F;行业&#x2F;机遇口，c是区域，比如线上&#x2F;线下，用好了这个公式，很有可能这一百万就出来了</p>
<p>你想挣一个亿，还有个公式：a’b*c，a是解决一个问题的产品，b是它的复制性，c是它的规模效率，所以要学会做效率</p>
<p>只有长期主义才是利润的真正来源，你熬到其他人都不愿意做了，只要这个需求在，你就能赚取足够的利润</p>
<h2 id="生意是算出来的"><a href="#生意是算出来的" class="headerlink" title="生意是算出来的"></a>生意是算出来的</h2><p>算什么？算你要挣多少钱的目标，算这个词会贯穿你做生意的过程当中</p>
<p>xxx年，我要赚xxx钱，然后进行拆分，拆到最细，然后记住成本的本钱，比如20万，超过这个，我不干</p>
<p>1、树立目标（smart原则）——越具体越好，比如：我需要在3年内100万</p>
<p>2、分析目标【时间，金额，方法】</p>
<ul>
<li>第一年，10万：找到商业模式</li>
<li>第二年，30万：扩大模式——雇佣</li>
<li>第三年，60万：复制模式&#x2F;或出售</li>
</ul>
<p>3、进一步分析目标，拆第一年，列出标准，也就是你第一年该做哪些事</p>
<p>3个月：</p>
<ul>
<li>找模式，挖需求，用户单价在300-500元</li>
<li>付费用户量：200人&#x2F;月</li>
<li>毛利率：50%；</li>
</ul>
<p>成本：6-10万收入，3-5万毛利</p>
<p>6个月：</p>
<ul>
<li>是否可持续？——&gt;规模总量有多大？</li>
<li>好模式 &#x3D; 规模 x 对手弱 x 刚需 x 高频</li>
</ul>
<p>9个月：</p>
<ul>
<li>精益模式，怎么避坑，怎么填坑？</li>
<li>怎么进一步获客？</li>
<li>交付的时候怎么让用户更满意？</li>
<li>成本控制的好不好？</li>
<li>售后如果有一些问题，该怎么和用户解决问题？</li>
</ul>
<p>12个月：</p>
<ul>
<li>SOP精益梳理——&gt;团队搭建</li>
</ul>
<p>4、再细分计划——&gt;前3个月</p>
<p>第一个月：</p>
<ul>
<li>模式调研：用户需求调研【痛点，爽点】</li>
<li>成本和利润，对标—&gt;有谁做了？—&gt;核心</li>
</ul>
<p>第二个月：</p>
<ul>
<li>试跑——&gt;拆解何写问题，与他人交流【高手，上游&#x2F;下游，用户】</li>
<li>自己干【如果你已经知道了核心，那你就自己干】</li>
<li>还是加入别人干【如果你知道这个核心，但是你做不了，那你就加入别人一起干】</li>
</ul>
<p>第三个月;</p>
<ul>
<li>问自己现在最大挑战是什么？</li>
<li>拿一些数据来衡量：200人&#x2F;月，300-500人&#x2F;月，50%毛利【这些有没有达到？】</li>
</ul>
<p>5、再细分计划——第一个月干什么？</p>
<ul>
<li>把计划安排进时间表，这样就能干起来了，不然你想那么多，你不出来，你永远都挣不到钱，一直拆分下去</li>
</ul>
<p>6、先不要考虑自己有啥，也未必想好要做啥，但心里要拆出一个规划来</p>
<p>7、有多少本钱可以折腾？——全亏了也不是事【这个就是算成本】</p>
<p>孕妇效应：女孩子怀孕有宝宝了，她会突然发现街上全是有宝宝的女孩子，这是因为她怀孕了，她把自己的注意力都放在了怀孕这件事上，这就是聚焦产生的一个结果</p>
<p>逻辑：这个行业好干不代表你好干，你好干不代表这个行业好干</p>
<p>你想赚多少钱，得自己有个数，有了这个数，你才可能去进行拆解，你才能够去排除不相关的选项，让自己的精力还有能力去完成聚焦这件事</p>
<p>smart原则：s指代的是specific，表示要足够的具体，m指代的是measurable，表示要可以观测，a指代的是attainable，表示可达到的，r指代的是relativeness，表示相关性，t就是要有时间表，梳理目标要把这几个都具备了，而且越具体越好</p>
<p>有了目标，你就会确立一套标准，这个标准就是去卡什么生意我可以做，什么生意我不愿意去做</p>
<p>找到目标的下一步是拆解目标，你不拆开目标你就不知道下一步要做什么， </p>
<p>流水和利润是不一样的，利润是揣在自己兜里的，流水是在公司的，一家公司流水很大，不意味着这家公司的利润很高，这家公司利润很高，就要去看这家公司到底多少钱，真正交了税，把它确定结转成利润的</p>
<p>你只要进到一个加盟的会场，你所谓心里的所有标准，很有可能都会被他们的话术所摧毁，你要干的事情是，要去算一算，我干这个活，它有没有落在我三年要挣100万这个目标里，如果他们告诉你远远超过这个目标，那就赶紧走，因为这件事是完全可能是超越你认知框架的</p>
<p>定价定江山，你实际在选人群，我到底是要做哪群人的需求？这个也是可以用数字去拆出来的，付得起高价的人一定是少的，付得起便宜价格的人一定是多的，自己要做一个权衡，你到底是做相对高端的产品，卖少数的人，还是相对卖一个比较普通的产品，卖大多数人，然后你自己去测量这两个的乘数，再控上毛利率</p>
<p>现在如果去做副业，毛利率低于30%的，基本上就不要去考虑了，50%以上的才是比较正常的</p>
<p>毛利：就算你的钱没有去交税，各种杂七杂八的费用没有加进去，只是这个东西你进价多少钱，你卖出去多少钱，这个就叫毛利</p>
<p>净利：就是最后交完税还剩下的钱</p>
<p>对于好模式的四项：规模、对手弱、刚需、高频，如果这四项中有一项特别突出，就可以做，有两到三项特别突出，那就一定要做，这个生意就是好生意，四项都不行的，不管对方怎么忽悠你，都坚决不做，比如：规模又小、对手又强，又不是刚需，然后又很低频</p>
<p>SOP：标准流程，流程特别重要，因为有了流程我就可以进行复制了，我就可以开始雇人了，我就可以开始培训了，原来是靠体力做（无财斗力），流程一做出来，就可以变成少有斗智了</p>
<p>你看好一个项目，要不要入场，要不要加盟，最好的衡量办法就是当他们的用户，去体验一下，或者找他们的用户去问一问，要做好充分的用户调研才去做</p>
<p>一个好产品， 一定不是靠这个商家自己去打广告，打投放，一定是用户的口口相传，由用户来告诉别人自己的产品哪里好</p>
<p>痛点：用了这个产品和不用这个产品的差别</p>
<p>爽点：用户推荐用户会说什么</p>
<p>问朋友问题，一次性是问不出来所有信息的，比如问他利润多少，你可以第一次问他收入多少，下一次再问他利润多少，然后就可以知道他的收入了，毕竟，收入-成本&#x3D;利润了</p>
<p>如果你发现这个项目别人做了，而且水平特别强，你未必也要经常跟他干一样的事了，你跟他干一样的事，很有可能就干不出来，你需要的是跟他聊，我要怎样跟你一起干这个事，也就是在上游下游参与一下，但是要说肯定不会跟他一起干这个事，我们最希望看到的是，一个水平不如你的人，在这个项目做的风生水起，然后就可以干</p>
<p>找这行在做的高手，问他们，如果在上游，就问：为什么不往下游做啊？也就是货卖给他们大概是怎样的一种情况，你们为什么不自己下去做啊？如果是在下游，就问：你们怎么不往上游拿货啊？ 这样一问，就大概能知道这个项目的竞争壁垒在什么地方</p>
<p>一旦你知道壁垒，你就知道核心是什么，比如，下游说：我们不往上游做主要是我们没那么多资金啊，我们控不住盘啊，那你就可以通过这个知道这个地方要投钱；上游说：我们不往下游做是嫌太麻烦，我们吃这一份就行了，那你就可以知道这个项目可能事很多很复杂，那你就要想想怎么建立一套系统去解决问题</p>
<p>然后可以问用户：你用这个的感觉怎么样？要注意：之前是别人的用户，现在是试跑了有了自己的用户，问为什么买？感觉怎么样？会不会推荐给别人？为什么会？为什么不会？你从哪里知道这个牌子&#x2F;产品的？问这些问题</p>
<p>第一，你有的未必是别人需要的</p>
<p>第二，你现在有的东西未必符合外部的潮流，所以，你有什么你可以去思考，但是这并不是你想去做副业的第一件事情，你应该是从钱出发，从财务目标出发，进行一个倒拆</p>
<p>第三，也不要都想好了去做，以你的商业智慧，即使你都想好了去做，很有可能也是冲进去给别人接盘的</p>
<p>真正做成事的，都是靠的运气，不过你学的各种方法，也只是让你在做事的过程中少犯一点错误，不犯错误，你就已经在赢面上了，稍微来点运气，你说不定就起来了</p>
<p>生意是跑出来的</p>
<p>从需求端，用各种各样的方法去研究用户的需求，或者把这些标准拿出来后，去参考和考察你未来想参加的副业的项目</p>
<p>1、客户需求</p>
<p>\1. 先去做一个客户，你有什么需求是现有产品不太能满足的？根据下面五个点，去你想进的产品去考察一下：</p>
<ul>
<li>功能是否满足需求【如果一个产品功能七拼八凑，我们就提供一体化解决方案】</li>
<li>价格低【降成本（降核心诉求以外的其它成本），引流（把用户圈进来后面再用高价品变现）】</li>
<li>是否便利【价格很ok，但是很难买下来，eg：代购，社区团购】</li>
<li>是否有身份认同【奢侈品销售，把高端人群建立社区，满足他们的各方面需求】</li>
<li>是否有情感需要【陪聊，相亲，银发经济】</li>
</ul>
<p>\2. 这些客户是否容易聚合起来？—&gt;获客成本低，渠道溢价高【拼多多，电子厂便利店，文具店，高档小区理发店】</p>
<ul>
<li>职业&#x2F;社会地位</li>
<li>上班&#x2F;居住地点</li>
<li>社群</li>
</ul>
<p>\3. 他们有没有其它共性的需求？支付能力如何？需求是否刚需高频？</p>
<p>\4. 开始记自己日常开销的明细，记账</p>
<p>2、渠道为王并非产品为主</p>
<p>线下获客</p>
<ul>
<li>社交：你是不是人脉节点？【朋友多了路好走】职业【销售，中介】，弱关系【七大姑八大姨，校友】</li>
<li>店面：商业中心 VS 社区</li>
</ul>
<p>选店的模式：</p>
<ul>
<li>3-6个月观察期【别总关注极值，要关注平均值】</li>
<li>启动资金的1&#x2F;4【即使全亏了对自己的生活依然不产生影响的资金】房租占收入20%以下</li>
<li>谁是你的顾客？</li>
<li>做鸡头不做凤尾【从二流商圈试水】试水要控制成本</li>
<li>数人流【用计数器，过去一个人记一个，3天到一周】</li>
<li>跟动线【跟10-30个人找最合适的店铺，动线要捕捉清楚】</li>
<li>跟打样看单【打样的时候过去点个单，看看那个小票上总共多少单，大概就能看出来一天的营业额】</li>
</ul>
<p>线上获客</p>
<ul>
<li>短视频</li>
<li>裂变</li>
</ul>
<p>三地理论：</p>
<ul>
<li>流量地【免费的&#x2F;让用户体验】</li>
<li>销售地【转化，体验越深入，转化越容易】不是教销售怎么改话术，而是把卖的产品做好更深层次的体验</li>
<li>客户地（私域）已经服务过的客户，你要进一步去服务他，让他产生复购，高频的购买</li>
</ul>
<p>3、渠道+服务模式 </p>
<ul>
<li>渠道的关键在聚集【挖掘用户需求是关键，用户是不是容易被聚集也是关键】</li>
<li>服务的关键在高频【用户不来找你，你就去找他，给他提供免费的服务都行】提高用户忠诚度</li>
<li>拿住用户找产品【供给】现在已经供给过剩了</li>
</ul>
<p>4、三流模式</p>
<ul>
<li>信息流：短视频—微信公众号—社群——&gt;产品&#x2F;服务能获客</li>
<li>资金流：现金购买力—订金预购——&gt;资金交易效率，拉高购买力，复购率</li>
<li>物流：外卖，团购，专车，代购——&gt;便利性</li>
</ul>
<p>5、低买高卖，增加价值</p>
<ul>
<li>聚集用户，集体议价——&gt;厂家规模经济，买家性价比</li>
<li>低价信息差——&gt;贸易，二奢，球鞋，群头儿</li>
<li>原材料加工——&gt;技术附加值（人工工时）</li>
<li>集采分割——&gt;买商铺，租出去（资金增值）</li>
</ul>
<p>你做任何东西，不管是抖音、产品、电商还是别的，永远要记住：需求永远是第一位的，不是你要做什么，而是客户要什么，学会发现客户的需求，这个很关键，并且要把他需求交付了以后，要把钱拿回来</p>
<p>做事情的时候，永远把别人的需求摆在第一位，因为只有这样别人才可能付费</p>
<p>问现有产品不太能满足这个问题，核心是在判断对手，如果对手弱且还没有这个产品，而我们又能感受到这个需求，自然而然，好模式【规模大x对手弱x刚需x高频】中有两个满足，我们就可以准备进场了</p>
<p>切忌参与一个项目前，不要做旁观者，而是做顾客花钱进去感受，你要开个足疗店，你就去捏脚，你要开个KTV，你就去唱歌，你要开个餐馆，你就去吃饭，你要作为一个挑剔的顾客，你要觉得还有什么需求是现在产品不太能满足的</p>
<p>只要获客成本低，那么商业模式基本上就成立，当你能很容易的把客户都聚集在一起的时候，你会发现渠道溢价就高了，你就可以去上游跟供应链去谈判了，供应链就特别需要那种能把客户非常迅速集中在一起的这样的机构，如果你把上游需要的客户聚集的非常好，那自然而然，上游的供应链愿意降价来跟你合作</p>
<p>还有一种角度去考虑是否做副业：你能不能用一种单品或者说一种服务，将客户很容易的聚集在一起</p>
<p>当你可以把客户聚集起来以后，你自己就未必可以有针对这个需求的产品，你可以去找上游的供应链要产品然后卖给你的客户，用户的数量x单价数&#x3D;总收入，看用户的支付能力强不强，如果强，就卖非刚需产品，如果不强，就卖刚需产品</p>
<p>在设计产品的时候，或者找产品的时候，对于高频的理解一定要明确，越高频用户忠诚度就越高，越高频客户越容易见到效果</p>
<p>稳赚不赔法：对自己进行记账，连续记一个月，你看看自己在什么方面花钱的单价最高，频次也高，大概率你就能找到对于你来讲，什么叫刚需高频的东西，当你找到后，你就可以用客户的视角倒推你自己的需求是什么，有什么需求没被满足，然后你看一看你能不能聚集一群跟你差不多的人，如果你能聚合一帮跟你差不多的人，通过你的人脉，职业，小区，上班的位置，你如果能聚合了，基本上你就可以向上游去找项目了，找到后，就以较低的价格拿下来，然后卖给你聚集起来的用户，赚差价，比如社区团购</p>
<p>现在这个时代，你也不需要自己花时间去做一个产品，现在已经进入到了渠道为王，流量为王的时代，你能经营人群比你能经营产品，还会变得重要的多</p>
<p>如果你之前没有创过业，或者没有在一些大的公司做过一些相应的业务，你直接跳出来做产品，这种成功的概率概率基本上是没有的，但是每一个人都可以去做人群做渠道做流量</p>
<p>怎么成为人脉节点？认识人脉节点的人，加入他人脉节点的网络就好了，你可以利用他的人脉网络来卖东西，只需要给他人脉网络的使用费就好了，这就叫过路费，而且组建这个网络的人也需要这个过路费来当作自己的营生</p>
<p>不管是创业还是做副业，第一笔固定成本的投入一定要谨慎，固定成本就是你砸下去以后，它如果收不回来，它就是沉没成本了，这笔钱就亏进去了，一般房租是要谈半年一付，不行就撤，不要在那耗着，别养着，基本上半年起不来，那就起不来了，这是一个很经典的判断</p>
<p>不要拿超过启动资金的1&#x2F;4去付房租，比如启动资金10w，半年房租最多25000，超过25000坚决不要租，不管这个地方多好多牛逼，因为风险太大了，大概知道房租和营业额后就可以计算收入了</p>
<p>线上的流量进来之后，要学会去放裂变的钩子，给用户更好的产品也好，打折也好，让他带更多的人进来，把客户池真正的运营好</p>
<p>公司的利润率或者项目的利润率，它只跟用户的忠诚度相关，什么决定了用户的忠诚度呢？就是你员工的忠诚度，所以你需要把自己团队的忠诚度给提到高高的，就给自己的团队提一个要求：高频服务用户，只要让顾客的忠诚度提上去了，你公司的利润就不会低</p>
<p>信息流：你的产品&#x2F;服务能够获客，也就是客户他的需要能够被信息流的方式反馈到你这里，采用的方法就是短视频，也就是你可以在这买到你想要的东西，凡是群，你就加进去，这样你就占有了一个获取信息流的管道，线下的聚会也可以多去参加，多加人</p>
<p>你自己在做一些项目的时候，你也可以考虑设计一些会员制度，会员制度采用的方式用两种：</p>
<ul>
<li>第一种模式叫二阶付费：先是会员费，如果你有会员费，你买别的东西打折，还有某种特殊商品只有会员能够购买【通过会员费锚定顾客，让顾客总要觉得把会员费给赚回来，所以他就会不断地去购买】</li>
<li>第二种模式叫自助餐：就是这个会员费你一旦交了，这里的所有商品你都可以使用，不计次数，一年一个费用，你交了这个费用，里面的东西你随便用，这种自助餐模式特别适合内容行业，知识付费</li>
</ul>
<p>最小可行性分析</p>
<p>最小可行性分析(MVP)指的是以最小的成本、最短的时间完成产品的核心功能开发，快速验证商业模式是否可行的方法。以下是做最小可行性分析的几个步骤：</p>
<ol>
<li>细分市场：了解用户需求和行为，根据市场的细分情况，确定目标用户群体，针对目标用户的需求展开产品设计和开发。</li>
<li>确定核心功能：对于一个新产品或服务而言，必须有能够满足早期用户核心需求的基本功能，这也是MVP最重要的一环。选择此功能时需要慎重考虑，它必须是产品中最关键的，而且一旦你失去了它，就不能提供很好的产品。</li>
<li>真实场景：在产品开发初期，要避免过度投入，因此应优先考虑真实的场景。通过高保真原型或交互式设计等形式将产品的场景还原到现实生活中，以便更好地了解用户体验和反馈。</li>
<li>快速迭代：MVP是快速验证商业模式是否可行的一种方法，因此需要快速迭代，并及时进行反馈和改进。不断地测试、试错和修改，以打造出令人满意的产品。</li>
</ol>
<p>做好最小可行性分析可以帮助企业快速验证产品市场，减少开发成本和时间，同时降低风险和错误。它不仅适用于初创企业，也适用于大型企业新产品的推出过程。</p>
<h2 id="生意是比出来的"><a href="#生意是比出来的" class="headerlink" title="生意是比出来的"></a>生意是比出来的</h2><p>我们要看看，如果我们自己的水平不够，我们看看对手怎么做，我们看看同行业的怎么做，从他们那我们怎么汲取更好的经验，然后提升自己的经营</p>
<p>1、成本领先（管理侧）</p>
<ul>
<li>用户看不见成本，价格决定客群【供应决定价格】</li>
<li>薄利是否能多销？【未必】多销卖的多收入就高？【未必】</li>
<li>多销的目的是什么？【聚集用户】</li>
<li>成本结构：固定成本【靠摊平】 VS 可变成本【靠供应链管理】</li>
<li>自雇佣：时间成本要算一算</li>
<li>省一块钱比赚一块钱容易（省的都是利润）【做生意，再大的企业家都非常节省，没有铺张浪费过】</li>
<li>降一块钱带来的利润利润波动大于一块钱（别图便宜，别降价）</li>
<li>价格竞争消灭利润</li>
</ul>
<p>结论：</p>
<ul>
<li>如果销量少，则要降低固定成本在总成本中的比例（餐饮加盟比例）</li>
<li>可变成本降低靠管理【降低人员工资、给员工加上绩效】</li>
<li>止损点：收入无法覆盖可变成本（固定成本是沉没成本）</li>
</ul>
<p>2、差异化（需求侧）</p>
<ul>
<li>本质上是调整供求关系：深挖需求【自己创造一个供小于求的场景，你定多少价格都是合理的】</li>
<li>用户心智定位：我和谁是对手？——&gt;找软柿子捏</li>
<li>品类中，第一第二才有机会，人群差异：精准+足够容量+高单；地域第一：线下模式的精髓</li>
</ul>
<p>3、向对手学习</p>
<ul>
<li>入场前：登门拜访，上下游了解，能加入就别打擂（竞争程度）</li>
<li>当客户，体验痛点是否被解决，终峰体验是否好（差异化）</li>
<li>当雇员，了解成本结构（成本领先）</li>
<li>不断参考，保持敏感度——&gt;行业峰会，培训，展会</li>
</ul>
<p>竞争理论：</p>
<p>成本领先：别人做这个东西花一块钱，你花五毛，别人做这个事花一天，你做花一个小时</p>
<p>差异化：别人都做我不做，大家都做我不做</p>
<p>聚焦&#x2F;专业化：前两种就是你进入市场之后，在标定竞争对手，我们要去进行的一个思考，或者一个很好的进行商业迭代的方法论</p>
<p>注意：成本领先绝不是说你坑蒙拐骗，把一块钱做的东西，拿三毛钱顶上去，我们要做的是用管理的方式把成本削减下来，成本领先不一定就意味着你卖的就比别人便宜，成本领先强调的是通过你的管理和运营，你比别人的利润高，而不是你卖的比别人便宜，因为用户看不见成本，所以我们将成本的目的是把利润做出来</p>
<p>社交货币：很多时候你买东西不是自己用，有的时候你买东西是送别人或者跟别人一起用，这个时候，平凡的一支笔，你要把它说出故事来，你就需要让商家告诉你这支笔是怎么做出来的，然后你就可以告诉别人，这个时候这个笔，就相当于你的社交货币，能够让你去变成你的谈资，跟朋友去聊天</p>
<p>送礼：送贵的送便宜的都无所谓，你送的这个东西背后一定要有谈资，或者是社交货币</p>
<p>你的定价直接决定了你要服务于哪一个阶段的消费者，也就是高中低三个阶段的哪个消费者</p>
<p>一个东西卖不卖的动，跟你的价格有一定的关系，但是没有绝对的关系，你卖的动的前提是：你卖的产品或者服务能满足用户的需求，如果不能满足，那你价格再低，未必能够多销</p>
<p>不要陷入价格战，价格战是最不可取的，千万不要什么东西卖不动你就降价，降价了也不一定能拉动销量，降价和销量之间没有正比例关系，而且很有可能，你降价带来的损失，远远要大过于你利润被拉下来这个的损失</p>
<p>逻辑：你的产品降价一块钱，你的利润不是损失了一块钱</p>
<p>产品卖不好，去进行用户调研，而不是降价</p>
<p>终极结论：用户只在乎能满足他需求的产品中你的价格是不是最低的</p>
<p>固定成本：不卖一份产品也要掏的钱，如果一个生意固定成本特别高，那么你卖的量就要特别大，所以固定成本靠摊平，本质上是走量，所以走量的生意固定成本可以拉高，注意：不是为了走量而去拉高固定成本，是固定成本高，我要走量，所以不要一开始就把固定成本拉的特别高，固定成本还有一个优势：护城河，别人拿不到的东西，你能拿得到，别人投不了的生产线，你能投的了，你就会变成绝对的上游，你涨价一毛钱，利润就出在了下游</p>
<p>可变成本：多卖一份产品就得多掏一份的钱，它怎么降低？就是供应链管理，说白了就是把压力向上游转移，可变成本高不怕，只要你有用户，你就可以向上进行转移，这个高低无所谓，不开张就不会产生这个成本，</p>
<p>做产品是有大量固定成本的投入的，这个固定成本上去了以后，就会逼迫你不得不走量，不走量现金流就会非常紧张，你不走量，你的下游你会开始薅你的羊毛了</p>
<p>建议：慢慢开始做，逐步增加固定成本，当你慢慢做能摊平固定成本后，你去扩大规模就是好事</p>
<p>上游下游是一个博弈的阶段，你要想清楚你要进哪个游，选择合理的固定成本的匹配比例</p>
<p>沉没成本：已经花掉的钱，你是没法给它捞出来的，要学会及时止损</p>
<p>自雇佣：自己干，或者两三个合伙人干，基本大家也不领工资</p>
<p>时间成本怎么算？——&gt;你做这件事情效率会不会提高？大力出奇迹</p>
<p>内容行业的所有爆品，都是运气，它是不可复制的，一旦跟运气相关，那就是大力出奇迹就完事，多做几条发发发</p>
<p>红海市场：已有用户相互抢夺，抢别人的用户，竞争激烈</p>
<p>蓝海市场：把非用户转变为用户</p>
<p>叠加关系：在一个品类干到20%，在另一个品类干到20%，你就是独一无二的双品类的前4%【卖火锅+卖奶茶】</p>
<p>你要创业，就多看看你的对手，跟他标定起来，不是说他做了什么你做什么，而是他没有做什么，造成的需求的控额点，你要上去解决，他不可能全占的，你打他的侧方就好了，所以，那1-5个需求，你拿出来给你对手打分，他的功能上多少分，价格多少分，情感多少分，身份多少分，便利性多少分，然后从另一个角度解决它解决不了的问题</p>
<p>要做第一第二，如果你是第二，那你就说做第一的颠覆者，如果你是第一，你就说我时间很久，销量很大，我是王牌，我是赛道的领军人物，标准的制定者，如果你是第三，你就说自己新做了一个品类，马上变成新品类的第一</p>
<p>要不断的只做唯一，而不仅仅考虑第一，在区域上搞差别，在人群上不断细化，你就能创造出新的品类</p>
<p>我们未必一定要挣大钱，但是我们一定不要去挣特别辛苦的钱，把生意做好做舒服了，自然而然就会挣大钱了</p>
<p>终峰体验：终，就是一次产品或者服务的最后一刻是不是让用户觉得很好，峰是整个的过程高峰，要有记忆点，要有传播点，要让用户感觉到高潮</p>
<p>信息的充分是做出优质决策的前提</p>
<h2 id="生意是试出来的"><a href="#生意是试出来的" class="headerlink" title="生意是试出来的"></a>生意是试出来的</h2><p>前面都是想的阶段，试是做的阶段，小试牛刀，大显身手【一开始不要搞这个】，试都是小的，不要太着急</p>
<p>1、MVP模型：干——&gt;测——&gt;学——&gt;干</p>
<p>最低成本测试最核心卖点【能不花钱就别花】创业也好做副业也好，回答下面四个问题，越清楚越好</p>
<ul>
<li>你的用户是谁？</li>
<li>解决他们什么问题？</li>
<li>他们想怎么解决？</li>
<li>你能做什么？</li>
</ul>
<p>把上面四个问题打印出来贴在自己周围天天想，天天看</p>
<p>预售订金模式——&gt;测购买意愿（看出某一阶段预期规模）</p>
<p>2、一比一抄（像素级）</p>
<ul>
<li>找到对标业务</li>
<li>加入学习，了解用户，分析成本【了解对手做了什么】</li>
<li>最小化抄核心卖点【把最关键的动作留下来】</li>
</ul>
<p>3、小买卖变成大生意的路径：</p>
<ul>
<li>不亏钱的前提下</li>
<li>用户是否聚集？——&gt;如何老带新？</li>
<li>供应商是否合作？——&gt;挑合作好的，而非价格最低的</li>
<li>核心运营要点是否把握？——&gt;先做最核心，其余让出来</li>
<li>区域垄断是否可行？——&gt;唯一比第一更容易</li>
</ul>
<p>4、自己没玩明白之前，不要合伙，也不要招人——&gt;退出成本小</p>
<p>5、任何前期投入过大的业务，都不要开展——&gt;书籍：《随机漫步的傻瓜》【游击队的根据地】</p>
<p>MVP：最小可实现性商品，不要把摊子一下子都铺开，要以最小的方式去测量之前对于商业模式、用户需求是不是认知正确的，然后再逐步的增加投入成本，先干起来，然后是测，最后是学，MVP的关键不是未来占领市场，而是为了把握用户的需求，只要把握用户需求，市场就不会小的，竞争力就不会弱的</p>
<p>对于数字的敏感度，对于可测量的敏感度，从一开始就得培养，做生意不算账这个生意是做不好的，也是做不大的</p>
<p>每一次创业也好，副业也好，一定要记住你首先投进去的成本一定就是能不花钱就不花钱，eg：如果你想开奶茶店，你就找一个店铺开个奶茶摊，然后跟他说卖的每一杯奶茶都跟他分钱，你也未必需要现场做，你可以跟别的奶茶店说，我今天订100杯，这100杯我们要干的一件事就是这边下单了我告诉你你给我送过来，然后赚的所有奶茶钱就分给所有店面的店家，那他就能判断出来在这个市口这个奶茶它能不能做</p>
<p>从预售订金模式，测试出用户的购买意愿，这样就可以看出第一阶段的预期规模，然后就可以反向测算出你的成本能不能覆盖掉，你需要投入多少钱才能把第一阶段给启动起来</p>
<p>案例：先测试用户需求，在一些社区里发帖子，就说自己有一个产品，具备哪些功能，然后做个假视频往里面一放，完了说感兴趣可以发邮件到我的邮箱；然后测试购买意愿，搭建一个网站，里面包年xx元，包月xx元，然后把网站发给那些发送过来邮件的用户，然后他们如果付费了，不管哪个都说还在研发中，有消息第一时间通知你，<strong>这样基本上不花钱就可以干，同时也可以弄清楚消费者需求有多大，他们为此愿意花多少钱，以及我大概需要多少成本来做这件事</strong>，这些都是商业最本质的信息，这些信息一定要抓到，不然进去基本就是亏</p>
<p>在商业上有两个特别好的老师：第一个好的老师是用户，第二个好的老师是对手</p>
<p>如果是差异化策略，建议走MVP模型，向客户去寻找答案，但是如果是成本领先策略，请你采用的方式是1:1的像素级的去抄对手，抄的目的是未来赶超对手，只有通过抄你才能去试，你才能够去控制成本</p>
<p>1:1抄最终形成的逻辑：我先抄一遍，看看你跟我一样是不是得到一个相同的结果，如果是我要在做优化的时候我改一个点，另外四个点我还是一样抄，我看你结果怎么样，很有可能这个结果没变还是这个，那就证明这一点上做创新是没有用的，然后在另外一个点做创新是不是得到一个结果，如果更差了，那就不能创新，如果更好了，那就试出来了第一优改的模型和路径，这就叫控制变量</p>
<p>对手做的最重要的一件事往往就是他成本最高的一件事，因为没有人会在不重要的地方花更高的成本</p>
<p>先抓核心点，再抓竞争点，然后1:1的去还原，一个一个的去试</p>
<p>创业也好，副业也好，你花的每一笔钱都要精打细算，千万不要去充面子，利润才是关键，揣兜里的钱才是真的钱</p>
<p>如果你的老用户介绍完新用户了，你要把它按住问：你是怎么给新用户介绍我的，为啥这个新用户他听你的就来买我的东西了呢？反复多去问，把这些重要信息给抠出来</p>
<p>什么才是合作好的供应商呢？</p>
<p>第一，质量有保证</p>
<p>第二，交付时间有保证</p>
<p>这种就叫好的供应商，你的让人家赚点钱，因为他赚钱了，他才会一直在你的上游不断的向你供应</p>
<p>你要做十件事，到底哪件事最关键？你只要知道这个，你就可以把核心做到，其余的都让给别人做就好</p>
<p>记住：在价值链上，它的每一环的利润分布是不均匀的，它的重要性也是不一样的，脏活累活的位置也是不一样的，我们要让大家挣钱，我们要把利让出来，但是我们要把握最核心的那个环节，我可以做的少，我也接受赚的少，但是我必须要让自己不累，而且要有一定的竞争的行业门槛</p>
<p>只做最核心的，其余让出来，你在江湖的地位就特别高，而且大家都愿意跟你配合，然后你也很轻松，还有你这样赚钱的利润一点也不低，我们不仅仅要看成本，还要看哪一块利润最高，我做这一块，其它我让给别人</p>
<p>做生意越到后面越不容易，这个困难是逐步叠加的，做所有的事情可以开始特别困难，但是只要你开始走上正轨了，开始要往规模上增加了，你一定要记住一点：要越做越容易，否则你这条路很有可能就走错了，怎么做的容易？看老带新，你就不用去招新了，老用户都给你带来，就轻松了</p>
<p>你不知道做到哪里就在哪卡住了，卡住了咱就不做了，你不知道在哪行业政策就发生变化了，不让你做了，不让做咱转身就走，你合伙问题就大，你想走人家不想走，你感受到了危险，他还觉得欲望没有被满足呢，招人，解散人，人家也会恨你，自己没有完全弄明白之前，不要招人，也不要合伙，可以让他们做兼职，怎么弄明白？就是那几个路径</p>
<h2 id="生意是谈出来的"><a href="#生意是谈出来的" class="headerlink" title="生意是谈出来的"></a>生意是谈出来的</h2><p>1、对自己坦诚【我要什么】，对别人利他【他要什么】，把事情说清楚</p>
<ul>
<li>怎么换？【交易】只要我不吃亏，都能做【机会】</li>
</ul>
<p>合作比雇佣好</p>
<ul>
<li>同行业换资源</li>
<li>不同行业换用户</li>
<li>上下游联动</li>
</ul>
<p>2、让别人亏不了，是合作促成的最有效路径——&gt;能试就行，锁定周期</p>
<p>3、风险共同承担，资源共同分享，利益让别人先拿——&gt;方案设计</p>
<ul>
<li>都要出钱，出资源是加分项，但不是必须——&gt;没风险不卖力，但我的风险可以比你大一些【风险共识】</li>
<li>出资源的，可以对资源定价——&gt;一码是一码</li>
<li>利益的时空维度：先拿后拿【退出得利】，在别人看不见的地方赚钱</li>
<li>谈的时候发散，做协议时收敛（律师朋友的重要性）</li>
</ul>
<p>4、拒绝无效社交，将时间用在积累自己的能力上</p>
<p>如果你做企业，用雇佣的方式无可厚非，但是你搞副业或者创业，一开始减少风险，不犯错的方法，一定是合作比雇佣要好，因为你雇的人，你要考核他，考核的本质是分利，而分利，别人不一定服你分，而且更为关键的是你雇佣了以后，如果他没干好，你要淘汰这个人，你所花的成本其实是非常大的，而且你雇佣当中你的底薪，你交五险一金这些方面，它是没办法去进行一个有效考核的，因为这个是属于固定成本</p>
<p>合作的好处：第一，如果合作的不好，那以后就不合作了，它不存在一个很大的解约成本，第二，合作的时候这个考核非常清楚，大家事先把这个事商量好，挣的钱应该怎么分，基本上都会变成可变成本而非固定成本，合作比雇佣好，这个思路在创业或者做副业的初期，要去清晰和明白的</p>
<p>赚钱的对立面是不赚钱，亏钱的对立面是不亏钱，我们只要站在不亏钱的这一边就ok了</p>
<p>让别人亏不了，再跟他去谈合作，这样对方就很少有能拒绝你的理由</p>
<p>交易的过程，什么情况下容易谈崩？就是明显感觉有一方占了便宜，只要有一方很明显的占了便宜，这件事就是很难去促成的了</p>
<p>生意绝对不是一锤子买卖，它是连续多重的博弈，这一次不赚钱没亏钱，下一次就可以去调整这个交易的平衡点就可以了</p>
<p>做合同，做协议的时候，包括说在前面的话，我们先这样干半年，我们先这样干一年，半年或者一年之后我们再调整，用这样的策略来去做，因为这半年内我们可以保证，只要我不亏我就能做，但是半年以后如果发现对方比自己赚的多太多了，这时候就可以说一说能不能去调一调，让自己多赚点</p>
<p>就怕别人不赚钱，别人赚的越多，未来你跟他去进行协商的时候，实际你的筹码越大，因为往往最赚钱的利润量的地方，你到时候跟他收手不跟他合作他还真不一定找得到下家来合作，让别人赚钱就是增加了对方的转换成本</p>
<p>你要让你的合作伙伴承受一定的风险，不能全部都他承担或者你来承担，要风险共担</p>
<p>对于股权，干股，一定要让对方花钱才能给他，因为自己的钱出来以后，他会对这件事情相对的上心一些，不然他亏了也会觉得无所谓，赚了你自己心理可能也会不平衡</p>
<p>每次在说风险共担的时候，也是一个识别合作伙伴的契机，如果这个人不愿意跟你共担风险的话，那么这个合作伙伴基本上就只能在商言商了，做一单是一单，也别想着这是一个长久之计</p>
<p>谈的时候不要否定，对方说出来的信息就是需求，信息—&gt;需求，签协议的时候一定要白纸黑字的写下来</p>
<p>别人跟你合作，如果你没有合作的价值，你在那里浪费时间是没有用的，你还比如把这个时间用在积累自己的时间和业务上，也就是说你还没有到长个的时候，你还在小试牛刀呢，你还是应该花时间去搞自己的业务的，去夯实自己的实力的，不要去攀龙附凤，不然你跟那些人在一起，无非就是一个买单的机器，酒桌上的摆设，甚至是一些嘲讽挖苦的对象，没有一个人就真正打心眼里愿意去跟你做生意，这种社交就是无效社交</p>
<p>你有了格局，你就可以容纳更多的人，具体生意怎么谈，就事论事，按照上面的大原则跟自己的合作伙伴谈就好</p>
<h2 id="生意是堆出来的"><a href="#生意是堆出来的" class="headerlink" title="生意是堆出来的"></a>生意是堆出来的</h2><p>1、自雇佣——&gt;雇佣——&gt;合伙——&gt;退出</p>
<p>2、明确自己的优势，将劣势和耗时的机械工作外包</p>
<ul>
<li>建立流程，从头到尾跟一遍，叫别人（格局问题）</li>
<li>责权利分好（舍得给钱&#x2F;固定成本+可变成本）</li>
<li>不贪大，疼了再招人，招人没解决问题，要及时叫停</li>
</ul>
<p>用人要狠，管人要严，对人要好，换人要快【用人真言】</p>
<ul>
<li>招聘策略：用户变员工，让对手里面帮你介绍（不是挖），招人的时候先看最贵的，建立标准</li>
<li>合理合规合法</li>
</ul>
<p>3、资产积累</p>
<ul>
<li>用户积累（渠道）——&gt;私域流量</li>
<li>供应链积累（合作方入股）</li>
<li>品牌积累（个人品牌，公司品牌）</li>
<li>生产资料积累</li>
</ul>
<p>注意：不要加杠杆，不要负债，现金流是王道，随时小心出血点【亏钱的地方】</p>
<p>4、扩张模式</p>
<ul>
<li>复制——&gt;连锁经营，加盟</li>
<li>上下游入股投资</li>
<li>用户多需求——&gt;多样性</li>
</ul>
<p>记住：真正的创业副业，你作为最早铺这个摊的人，你到最后的一笔钱是最大的，前面赚的钱都不算钱，你要想办法把钱进行一个堆积，堆到最后通过股权退出，一把捞一笔大的，股权退出的时候，最后是有倍数的</p>
<p>我们要把自己的优势识别出来以后，把所有的资源都往优势上砸，将劣势的方面寻求外包和合作，自己只吃价值链上自己最擅长的一环，利润最高的一环</p>
<p>在真正开始招人或者扩编之前，先把流程记清楚，即便这个流程不是特别清楚，至少它得有一个流程，有了流程才好扩编，才好复制，把自己公司的方方面面从头到尾的跟一遍，然后教别人并检验流程成立不成立</p>
<p>别人做的好还是不好是他的事，我们的目标并不是担心他做的好或者不好，我们的目标是试我们的流程成不成立，我们的流程如果他学会了做好了，证明啥，证明我们流程成立了，这个时候，就可以考虑扩编了</p>
<p>招人的时候，要明确这个岗位工作的责任，他为什么负责，给他相应的责任，权力，利益，责权利没分好，你考核起来就特别的困难，一方明呢，别人会觉得在你这家企业干会受到很多委屈，要么会觉得你这个企业特别的乱，要么就觉得反正没多少利益，我没必要玩命的干，把责权利分好，是让员工觉得他是在为自己打工，这就是解决为谁而战的问题，比解决如何战的问题还要重要</p>
<p>注意：不要把固定成本给的多，要把可变成本给的多，一定要明确他的绩效，把绩效作为奖金，底薪给低一点，所以我们要舍得给钱</p>
<p>在职场为什么觉得老板pua你啊？因为老板没跟你们说清楚为谁而战，他赚的钱到他兜里了，你赚的钱全是一般绩效，但如果老板直接开始跟你分利润分收入的时候，你不会觉得老板pua你的，你会有各种想法，然后底薪再给的薄一点，干的不好的人拿不到绩效，他自己也就走了，但他会非常明白的知道是自己不行</p>
<p>在进行雇佣的时候，你的身份就已经变了，你不再是个管理者，你不再是个掌柜，你是东家和股东，我们要从小二转变成掌柜，再从掌柜转变成东家，东家到最后只负责看最后的账本，主要看掌柜的解决问题没有，剩下就不管了</p>
<p>疼了再招人，你就特别能看出来，招的这个人有没有效果，你不招他的时候这件事特别疼，他来了应该就不疼了，如果他来了问题是还在疼，那就证明这个人招废了，千万不要说我有一个想法我就要去招一个人，不，是我疼了我再去招一个人，招人解决不了，就请出去，大家都不要浪费彼此的时间</p>
<p>很多时候做管理正是因为你定的业绩目标不够有挑战，所以大家才没有成就感，所以一定要定有挑战的目标，定绩效的时候要高挑战+高支持，业绩目标定高，给你的支持和权力就会更大，这样的话才等于成就感，特别怕低挑战低支持目标不高，干不干成都是你的事，这样就没啥激情，还有一种是高挑战低支持，这样人家话都不跟你搭，还有一种低挑战高支持，这样带出来的都是巨婴，稍微未来再变一下，这帮人马上就叫苦连篇</p>
<p>用人要狠：给他成就感，并且锻炼他的本事，工作量给他压下去</p>
<p>定绩效，定经营目标，有三根线：</p>
<ul>
<li>第一根叫挑战目标，挑战目标让他们自己报，要讲出原因，挑战目标完成只奖不罚；</li>
<li>第二根叫预算目标，这个叫奖勤罚懒，勤快的就奖励，懒惰的就惩罚，因为预算目标是通过你努力就可以达到的；</li>
<li>第三根叫底线目标，底线目标老板自己算，底线就是如果这根线没达到我们就在亏钱，这个目标没完成就只罚不奖，要想留着就留着不想留着就换工作，不换就帮你换，直接N+1谈走了</li>
</ul>
<p>管人要严：这个人不会出现什么大毛病，把红线底线画出来，没做好或者说触碰了价值观的这些问题，直接就开除</p>
<p>对人要好：解决他为谁而战的问题，该发的钱给他发到位，发出他想象以外的钱，帮他解决一些家里的问题</p>
<p>换人要快：如果这个人不合适，千万别在那耗着人家，人家也别耗着你，商量一下赶紧结束，别人要找工作，也可以帮忙推荐推荐</p>
<p>在面对创业的过程中的团队问题的时候，不要一想就是他不好好干，别这么想，很有可能是不合适</p>
<p>用户变员工，他对你公司是有一定理解的，他因为是用户所以也知道你的痛点在哪</p>
<p>可以在对手那跟他说，让他给你推荐个人过来，因为高手周围都是高手，高手也有判断力，他知道谁是高手</p>
<p>招人黄金原则：招人先看最贵的，最贵的咱去看目的不是招最贵的，而是要知道这个行业里，如果你要招这个岗位的人，他最好的是什么样的，你用最贵的方式先去看他，看完了以后你再量体裁衣，选择后面的价格相对便宜一些的，能力相对一般的，甚至你还可能找得着价格不是那么贵，但能力很贵的人</p>
<p>招人该交五险一金的交，该上社保的上，该签劳动合同的签，所有东西合理合规合法，一方面这是遵守法律，也是我们公民的义务，二方面它不仅保护着员工，同样保护着企业，不要在这些问题上省小钱</p>
<p>一旦入股，你会发现上下游都是自己的人，中间这一块你就可以卖掉了，你通过控制上下游，你把企业卖给别人的时候，你依然在赚钱</p>
<p>做企业做副业，永远记住：现金是最关键的，有现金才是交易，资产是没法交易的</p>
<p>很多企业后面做崩掉，要么就是他加杠杆，拿了很多资产，但是没现金流了，然后就变成负债了，然后还亏钱，这就很麻烦了</p>
<p>当一个位置面临巨大竞争的时候，他旁边的点位往往是利润最高的区域</p>
<p>记住：你在某一个价值链上特别赚钱的时候，记得赶紧把这个钱散到你价值链两端最近的位置，然后把这一块让出去让别人做，然后你就会非常赚钱</p>
<h2 id="生意是退出来的"><a href="#生意是退出来的" class="headerlink" title="生意是退出来的"></a>生意是退出来的</h2><p>1、利润留在公司里会更值钱——&gt;价值</p>
<p>2、给管理测多发钱是铺垫——&gt;MBO（管理层持股）</p>
<p>3、穿越周期，重复做自己擅长的从0到1</p>
<ul>
<li>产品【不能穿越】——&gt;品牌【可以穿越】</li>
<li>团队【不能穿越】——&gt;管理方法【可以穿越】</li>
<li>资产【不能穿越】——&gt;现金【可以穿越】</li>
<li>用户【不能穿越】——&gt;渠道【可以穿越】</li>
<li>公司【不能穿越】——&gt;个人品牌【可以穿越】</li>
</ul>
<p>4、学会少做少得</p>
<p>记住：做生意就是为了退出了的，而不是长期持有，很多人都是从0到1做起来了，然后交给那些能在1后面加个0的人，继续把它翻倍，很多都是做出来的，但是发现后面拉不动，然后就转手卖掉</p>
<p>你卖公司，卖股份的时候，其实别人是按照你的资产和盈利能力来进行估值</p>
<p>pe倍数：人们对你企业长期盈利的一个期待，就是我愿意花几年的利润来买你手里的全部资产</p>
<p>退出路径：第一，别人买，别人来自于上下游或者投资人，第二，管理层买，谁都有当老板的欲望，给管理层多发钱是铺垫</p>
<p>MBO：管理层持股，你把钱发给他们，让他们最后拿钱，把你在公司的股份给买走，这公司就是他们的了，你自己就相当于完成了一个套现</p>
<p>敢发钱，绩效达标了就多发，绩效达标了，公司的账上就有利润，管理层也会有钱，公司的账上有利润堆估值产生了巨大的帮助，管理层有钱能够过来买你自己的股份</p>
<p>假设你这家公司一年比如说100万的利润，你在这个时候，你给管理层分50万，留50万在公司做估值，假设就干一年你不想干了，推一个极端情况，这个公司估值x3倍，150万，管理层现在是不是有50万？他就可以开始来买你这里的150万的股份了，剩下的不够没关系，你可以把它做成债券，他慢慢还，一年还个30万，几年就还完了。这时候你想想，原来有100万的利润，你装兜里那就是100万的利润，你还的交税，但是你通过上面的动作做完，你到自己兜里的就是150万了，多出来的50万就是倍数出来的</p>
<p>模式可以混用：先给管理层持股，但是你别把所有的股份都放给他们，比如你现在有100%的股权，你释放40%给管理层，另外60%我自己再持有，那40%你也可以放在有限合伙平台或者虚拟股权都可以，然后你再打包卖给投资人，你就会发现你是赚了两段钱，第一笔：你从100%减持到60%的时候，你已经揣了一笔钱到兜里了，整个打包还有60%，你还可以通过打包卖给投资人退出</p>
<p>这个倍数还可以设置的不一样，比如员工，你可以设置为1.5倍，投资人进来就3倍</p>
<p>任何生意玩到最后，一定是利用股权来进行退出的，要把这个模式想好</p>
<p>生意退出了后，就可以穿越周期，你在上一个周期赚到钱了，不代表着你在下一个周期就能赚到钱</p>
<p>你们要重复做自己擅长的0-1，不断地擅长做0-1，然后你退出了后就可以把资金抽出来做新的事，有了你上一轮玩0-1的经验，你再做新一轮0-1的时候，你就会犯更少的错误，少走更少的弯路</p>
<p>渠道是用户的聚集</p>
<p>你要干的是，退，但不能全退，你退的目的是为了把品牌、管理方法、现金、渠道、个人品牌这些东西给拿到手</p>
<p>人无我有，人有我优，人优我精，人精我化</p>
<p>一开始做生意一定很难，不要想着去赚容易钱，但是越往后做，如果不简单，一定是你做错了，而且如果不简单，你的收入和利润一定是拉不上去的，所以，吃苦要在前，早吃苦，一开始起步的时候，千万别走捷径，但是做起来，一定要找捷径，因为你不找捷径，方法上一定是有问题的，你越做越累一定是有问题的</p>
<p>财富的本质是选择权，你有一家企业不代表你有选择权，你有这家企业的资产换出的现金才代表你有选择权</p>
<p>从开始设计生意的时候，就要把退记在脑子里，这样你的格局才会比别人高，你的认知才会比别人高</p>
<h2 id="去有钱的地方赚钱"><a href="#去有钱的地方赚钱" class="headerlink" title="去有钱的地方赚钱"></a>去有钱的地方赚钱</h2><p>1、早期：高人指点</p>
<ul>
<li>小投入——&gt;迅速拉盘（生意是谈出来的）</li>
<li>优势迁移——&gt;迅速完成”无财做力—少有斗智—既饶挣时”的闭环</li>
<li>不行就撤——&gt;别听别人在赚钱，自己不赚就尽快止损</li>
</ul>
<p>2、中期：广大套路（生意是跑出来的）</p>
<ul>
<li>以上下游进场——竞争最激烈的最近上下游的机会很大</li>
<li>学会卖项目而不是买项目</li>
</ul>
<p>3、后期：胆大心细</p>
<ul>
<li>整合能力最关键——找没死但长不大的项目去研究</li>
<li>拉盘就撤，想好退路再进场</li>
</ul>
<p>到有钱的地方去赚钱，本质上是要了解信息时差，这是一个空间的概念，因为在哪赚钱的本身就有一定的信息时差，这也叫商机，这些也要去把它识别出来</p>
<p>如果一个机会是个商机，且是早期，竞争对手很少，你基本上是做了它就有产出，所以早期进场，要么跟高人进少投入一点，要么自己组盘拉一帮人跟你进</p>
<p>这个市场不缺项目，缺能卖项目的人</p>
<p>一定要找好买家再进场， 甚至你可以以买家的身份进场</p>
<p>对于最普通的人，没有资金积累，没有太多商业底层的认知，应该在早期或者中期进，早期就相当于结识贵人，贵人吃肉，你跟着喝汤这是可以的，这就是靠你的社交能力，中期就是你在竞争最激烈的上下游给它提供服务，这也能赚钱</p>
<h2 id="跟有钱的人赚钱"><a href="#跟有钱的人赚钱" class="headerlink" title="跟有钱的人赚钱"></a>跟有钱的人赚钱</h2><p>跟有钱人赚钱其实就是积累自己的人脉</p>
<p>1、人脉的核心是价值观选人，价值聚人</p>
<ul>
<li>你的三观要正，而且只跟三观正的人玩</li>
<li>利他的心态，我能为你做什么？</li>
<li>日久见人心，不要轻易更换三观正的合作伙伴</li>
</ul>
<p>2、社交标签</p>
<ul>
<li>用一个词概括你的优势</li>
<li>重复利用这一个词</li>
<li>用这个优势帮助别人和满足别人的需求</li>
</ul>
<p>3、三类朋友</p>
<ul>
<li>明确你自己是：思考型，社交型，行动型【长板交友】</li>
</ul>
<p>人的本质是心，心同此理，你想去了解人啊，这个理是相通的，只要理都一样，这个人你都跟的住，你要跟大佬，得把大佬当人，当正常的人，大佬也有喜怒哀乐，他也有情感需求，他也有各种各样的需要人帮他的地方</p>
<p>跟有钱人赚钱，一方面你能做对，另一方面你能学到本事</p>
<p>你能不能进到大佬的内圈，你有问题，大佬来帮你，是因为你的价值观，不是因为你有利益</p>
<p>大佬让你赚钱，你用钱去消费，这件事情不成立，但如果你能用从大佬那赚来的钱去聚人，大佬就会更有一堆人跟在他背后</p>
<p>遇到三观不正或者还特别有理的人，话都不要跟他讲，你不要用自己的价值观去揣度别人的，还有为你自己辩护</p>
<p>你三观正，周围的人三观不正，你有可能被带歪，别人说你三观正，怎么看出来你三观正，一方面看你的行为，另外很多时候人们在评价人的时候看谁跟你一起</p>
<p>你不需要一群狐朋狗友，真正的高手往往都是一个人打天下，你跟那些人就利益交换就行了，在商言商，说清楚条件大家换钱就好了，但是跟真正有钱人赚钱，永远要记住，三观要正</p>
<p>真正有钱的人，很少有格局小的人，否则他的命运是承不住那么多财的</p>
<p>一定要在心里不断的想，我能为你做什么，不仅是跟大佬，而且是跟周围所有的人都是这样的一个心态，保持这样心态的一致性，我能为你做什么</p>
<p>日久见人心，不要轻易更换三观正的合作伙伴，你不要总是想从三观正的伙伴身上赚大钱，不成立的，三观正的伙伴他赚钱比我自己赚钱我都开心，为什么啊？这个世界就需要三观正的人赚钱，而且人家肯定是凭本事，人家不是凭偷奸耍滑</p>
<p>凭本身比我本事大的比我三观正的比我努力的人比我更赚钱，我发自肺腑的开心，为什么？因为他以后就是我贵人，他以后才是大佬，可能我先干，但人家就是比我好，那我以后抱他大腿就行了，他吃肉我喝汤，为什么不行？</p>
<p>忠告：而且你去更换三观正的合作伙伴时，周围的人会对你有非常不好的评价，三观正的朋友，即便不赚钱，也不要散摊</p>
<p>高境界不讲技巧，只讲踏实做事，踏实做人就够了</p>
<p>每一次你跟大佬去沟通也好，去合作也好，记住：你就是一个堂堂正正的人，我三观很正，你自然而然就能够和大佬平起平坐，而不是我求大佬赏口饭吃，那就是乞丐的心态了，这样大佬是不会看得起你的，而大佬的心态是，他跟谁做他都能赚钱，他未必需要跟你做，甚至他都不赚这份钱都行，因为在那个时候，他的时候，不仅是财务上的实现，还是价值观上，认同感上的实现</p>
<p>你的优势有两类：一类是你的价值观，比如厚道，还有一个就是能力，所以价值观+能力，是社交标签的优势</p>
<p>一旦有自己的优势，你要经常自己说：你非常踏实，非常厚道，说自己就一贬一褒：我这个人完全没有任何特长，但如果要有，就只有一条，那就是我这人做人特别厚道</p>
<p>记住：跟有钱人大佬做事，不谈钱，该做什么就做了，一分钱都不要谈，请大佬吃饭，你千万别说这个地方不好定，或者别的有的没的，大佬如果说这个地方菜很贵，破费了，你也不要说不贵不贵，就当没听见，就说，我也不知道你爱吃啥，我今天随便点了几个菜，您看看合不合口味，所以不要谈钱，把钱从你跟他交往的话语中抹掉</p>
<p>谈钱也不是俗，而是你明明可以用价值观进入他内心的圈子里，但是你谈了钱，就变成了跟他做利益交换的外圈人</p>
<p>窍门：第一，以请教为由，没事就去请教一下人家，不是万不得已不要提困难，因为困难是王炸，一旦你真困难的时候，人家肯定真来帮你，最近我有个建议没太听明白，来请教你一下，别人说什么我们认真听就行，让他说舒服了，别人家说一个你反一句，那没必要，第二，以频率为上，经常性的请教，这个您觉得怎样？注意：别鸡毛蒜皮芝麻大点的事也要请教人家，这样就证明你每天都在思考问题，第三，以汇报为果，上次请教的，我做了什么结果，汇报也对频率由帮助，所以，一问一汇报，半个月见一次面，或者半个月发一次微信，一个月发一条微信，这个频率就非常好了</p>
<p>关注：富人的认知，牛逼的人的认知，他是怎么想问题的，他的人脉我们能不能一起用一用，让大佬给你推荐人脉，注意，这些东西大佬给到你，你产生了结果一定要汇报，他会很开心的，因为这些东西都不占时间，金钱</p>
<p>跟有钱人赚钱，关键在于跟，并且抓住人这个概念，人同此心，心同此理，大家都是人，在人格上一定是平等的，三观上才是真正凝聚我们的地方</p>
<h2 id="赚有钱人的钱"><a href="#赚有钱人的钱" class="headerlink" title="赚有钱人的钱"></a>赚有钱人的钱</h2><p>1、定价定人群</p>
<ul>
<li>有钱人愿意用钱买时间</li>
<li>用钱买体验（新奇特）【头等舱】</li>
<li>用钱买社交（炫耀与享受）</li>
</ul>
<p>2、有钱人的刚需</p>
<ul>
<li>维持其阶层的标配【跟社交有关系】</li>
<li>子女教育，父母养老，健康快乐</li>
<li>情绪价值：专属高端，省事与费事</li>
</ul>
<p>3、怎么赚他们的钱？</p>
<ul>
<li>专业主义：恰好你需要，恰好我专业</li>
<li>花钱去体验——&gt;关注细节和终峰塑造</li>
</ul>
<p>定价最怕的是成本定价法，把我的成本算出来加一个利润，然后就拿一个定价，这就很容易出问题，定价就是你要做的人群是谁，如果你要赚有钱人的钱，你就照贵的来，你不要以你的消费实力来衡量他们的支付力</p>
<p>有钱人在绝大多数时间下都是不快乐的，因为他那份钱要挣到，一定有大量的烦恼在等着他，所以他想去寻求快乐和刺激，这个就是绝对的刚需</p>
<p>富人们会花钱买完时间，然后把空下来的时间再花钱去浪费掉</p>
<p>要苦练内功，让自己十分专业，要不卑不亢，你千万别哄着他，你哄着他他就没有情绪价值，因为他在外边不缺别人哄他，当然有些人也是那种我花了钱你就要像奴才一样伺候我，这种人就说新富乍贵，这种用户就不用做</p>
<p>细节：给富人用的产品都刻着他的名字的缩写，用完后再送给他</p>
<p>离场感为了传播，峰值的高潮点为了让他记忆，他自己有记忆还能去做传播，这个事就特别带劲了</p>
<p>你要赚有钱人的钱就得做小众而不是大众，就得做精致而不是粗糙，就得叫贵，而不是便宜，叫便宜了还真不一定拿得到顾客，你的价格直接决定了你的专业主义的排名，如果你是第一名，你就要定最贵，如果你是第二名，那你先把自己做到第一或者唯一，然后定最贵的价格</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>1、树立财务经营目标——&gt;计划与筛选</p>
<p>2、设定好本金（启动资金）红线</p>
<ul>
<li>小额投入，逐步增加</li>
<li>及时止损，不要硬抗</li>
</ul>
<p>3、明确用户群，把握需求，你自己是最好的用户</p>
<p>4、明确对手与竞争策略，向对手学习</p>
<p>5、上下游关系要理清，最高价值环策略</p>
<p>6、适时开启组织建设</p>
<p>7、大钱都是退出来的</p>
<p>8、三原则做起来比较省力</p>

      </div>
      <div class="post-tags-categories">
        
        <div class="tags">
          
            <a href="/my-blog/tags/%E5%89%AF%E4%B8%9A/" class="">
              副业
            </a>
          
        </div>
        
      </div>
      
        <div class="copyright">
  <ul class="post-copyright">
    <li class="post-copyright-author">
    <strong>作者:  </strong>老顾</a>
    </li>
    <li class="post-copyright-link">
    <strong>文章链接:  </strong>
    <a href="/my-blog/2023/10/01/副业思维/" target="_blank" title="副业思维">https://gitee.com/coderlaogu/2023/10/01/副业思维/</a>
    </li>
    <li class="post-copyright-license">
      <strong>版权声明:   </strong>
      本网站所有文章除特别声明外,均采用 <a rel="license" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank" title="Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)">CC BY-NC-ND 4.0</a>
      许可协议。转载请注明出处!
    </li>
  </ul>
<div>
      
    </article>
    <!-- 上一篇文章和下一篇文章 -->
    
      <!-- 文章详情页的上一页和下一页 -->
<div class="post-nav">



  
  <div class="post-nav-prev post-nav-item">
    <div class="post-nav-img" style="background-size: cover; 
      background-position: center center;">
      <img class="lazyload lazyload placeholder" src="https://pic3.zhimg.com/80/v2-7cfc909ebe8d83683909846edd6b5232_1440w.webp" class="lazyload placeholder" data-srcset="https://pic3.zhimg.com/80/v2-7cfc909ebe8d83683909846edd6b5232_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
    </div>
    <a href="/my-blog/2023/10/01/ElasticSearch-%E5%85%A5%E9%97%A8/" class="post-nav-link">
      <div class="title">
        <i class="fas fa-angle-left"></i> 上一篇:
        <div class="title-text">ElasticSearch 入门</div>
      </div>
      
      <!-- <div class="content">
        ElasticSearch：智能搜索技术，分布式搜索引擎，它是 ELK Stack 的其中之一，其中 E 就是 Elas
      </div> -->
    </a>
  </div>



  
  <div class="post-nav-next post-nav-item">
    <div class="post-nav-img" style="background-size: cover; 
      background-position: center center;">
      <img class="lazyload lazyload placeholder" src="https://pic3.zhimg.com/v2-85f45dcb3558ff9b33bf17bb02572434_r.jpg" class="lazyload placeholder" data-srcset="https://pic3.zhimg.com/v2-85f45dcb3558ff9b33bf17bb02572434_r.jpg" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" src="" alt="">
    </div>
    <a href="/my-blog/2023/09/30/%E5%AF%B9%E6%B2%9F%E9%80%9A%E6%96%B9%E9%9D%A2%E7%9A%84%E8%AE%B0%E5%BD%95/" class="post-nav-link">
      <div class="title">
        下一篇: <i class="fas fa-angle-right"></i>
        <div class="title-text">对沟通方面的记录</div>
      </div>
      <!-- <div class="content">
        下面是我学习的课程所做的笔记记录，希望看了对你有所收获~
价值感：怎么表达才能凸显干货？价值感果核模型：

果核，是条目
      </div> -->
    </a>
  </div>

</div>

    
    

    <!-- 打赏 -->
    
      <div id="appDonate" class="post-donate">
  <div id="donate_board" class="donate_bar center" ref="donate">
    <a id="btn_donate" class="btn_donate" href="javascript:;" title="打赏" @click="showDialogDrawer()"></a>
  </div>
  <transition name="fade">
    <div 
      class="donate-box-mask"
      v-cloak 
      v-show="visible"
      @click="cancelDialogDrawer()"
    >
    </div>
  </transition>
  <transition name="bounce">
    <div class="donate-box" v-cloak v-show="visible">
      <div class="donate-box_close">
        <i class="fas fa-times" aria-hidden="true" @click="cancelDialogDrawer" pointer></i>
      </div>
      <div class="donate-box_title">
        <h4>
          你的赏识是我前进的动力
        </h4>
      </div>
      <div class="donate-box_tab">
        <div class="Alipay" pointer :class="{'active': tabActive === 'Alipay'}" @click="changeTabActive('Alipay')">
          支付宝
        </div>
        <div class="WeChatpay" pointer :class="{'active': tabActive === 'WeChatpay'}" @click="changeTabActive('WeChatpay')">
          微信
        </div>
      </div>
      <div class="donate-box_img">
        <div class="AlipayImg" v-show="tabActive === 'Alipay'">
          <img src="https://pic1.zhimg.com/80/v2-79829ed763f645e036b1256fe8ff2138_1440w.webp" class="lazyload placeholder" data-srcset="https://pic1.zhimg.com/80/v2-79829ed763f645e036b1256fe8ff2138_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="支付宝打赏" />
        </div> 
        <div class="WeChatpayImg" v-show="tabActive === 'WeChatpay'">
          <img src="https://pic4.zhimg.com/80/v2-bd6a4a089110697b1473add0e6006603_1440w.webp" class="lazyload placeholder" data-srcset="https://pic4.zhimg.com/80/v2-bd6a4a089110697b1473add0e6006603_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="微信打赏" />
        </div>
      </div>
    </div>
  </transition>
</div>

<script>
  var body = document.body || document.documentElement || window;
  var vm = new Vue({
    el: '#appDonate',
    data: {
      visible: false,
      tabActive: 'Alipay',
      top: 0,
    },
    computed: {
    },
    mounted() {
    },
    methods: {
      showDialogDrawer() {
        this.visible = true;
        // 防止页面滚动，只能让弹框滚动
        // function getScroll() {
        //   return {
        //     left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
        //     top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
        //   };
        // }
        this.top = $(document).scrollTop() // or getScroll().top
        // console.log('aa', $('.main-content'));
        body.style.cssText = 'overflow: hidden;';
      },
      cancelDialogDrawer() {
        this.visible = false;
        body.removeAttribute('style');
        $(document).scrollTop(this.top)
      },
      changeTabActive(name) {
        this.tabActive = name;
      }
    },
    created() {}
  })
</script>
    

    <!-- 分享 -->
    
      <!-- https://github.com/overtrue/share.js -->
<!-- 文章详情页的分享 -->
<div class="social-share" data-sites="twitter,facebook,google,qq,qzone,wechat,weibo,douban,linkedin" data-wechat-qrcode-helper="<p>微信扫一扫即可分享！</p>"></div>

<script src="/my-blog/js/shareJs/social-share.min.js"></script>
</script>

<style>
  .social-share {
    margin: 20px 0;
  }
</style>


    
    
    <!-- 评论 -->
    <!-- 评论 -->

  <div id="myComment">
    
      
<section id="comments" style="padding: 1em;"
	class="animated bounceInUp">
	<div id="vcomment" class="comment"></div>
</section>
<style>
	#comments {
		background: rgba(255,255,255,0.9);
	}
	#veditor {
		background-image: url('https://img.zcool.cn/community/01a253594c71cfa8012193a329a77f.gif');
		background-size: contain;
		background-repeat: no-repeat;
		background-position: right;
		background-color: rgba(255, 255, 255, 0);
		resize: vertical;
	}
	#veditor:focus{
		background-position-y: 200px;
		transition: all 0.2s ease-in-out 0s;
	}
	#vcomment .vcards .vcard .vh .vhead .vtag.vvisitor {
		background-color: #42b983;
	}
	.v[data-class=v] .vbtn:active, .v[data-class=v] .vbtn:hover {
		color: #42b983;
		border-color: #42b983;
	}
	#vcomment .vcards .vcard .vhead .vsys i {
		display: none;
	}
	/* 底部valine链接 */
	#vcomment .vpower {
		display: none;
	}
	
	/* 底下注释是修改 名称和邮箱和网址输入框的样式 */
	/* #vcomment .vheader {
		display: flex;
		justify-content: space-around;
	}
	
	#vcomment .vheader .vnick {
		width: 31%;
		border: 2px solid #dedede;
		padding-left: 10px;
		padding-right: 10px;
		border-radius: 5px
	}

	#vcomment .vheader .vmail {
		width: 31%;
		border: 2px solid #dedede;
		padding-left: 10px;
		padding-right: 10px;
		border-radius: 5px
	}

	#vcomment .vheader .vlink {
		width: 31%;
		border: 2px solid #dedede;
		padding-left: 10px;
		padding-right: 10px;
		border-radius: 5px
	} */

	img.vimg {
		transition: all 1s;
		/* 头像旋转时间为 1s */
	}

	img.vimg:hover {
		transform: rotate(360deg);
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
	}

	#vcomment .vcards .vcard {
		padding: 15px 20px 0 20px;
		border-radius: 10px;
		margin-bottom: 15px;
		box-shadow: 0 0 4px 1px rgba(0, 0, 0, .12);
		transition: all .3s
	}

	#vcomment .vcards .vcard:hover {
		box-shadow: 0 0 8px 3px rgba(0, 0, 0, .12)
	}

	#vcomment .vcards .vcard .vh .vcard {
		border: none;
		box-shadow: none;
	}
</style>
    
  </div>

<!-- comment script in themes\hexo-theme-bamboo\layout\_partial\scripts\index.ejs -->


  </div>

  <!-- 目录 -->
  <aside id='l_side'>
  
    
      <section class="widget side_blogger">
  <div class='content'>
    
      
        <a class='avatar flat-box rectangle' href='/my-blog/about/'>
          <img src='https://pic1.zhimg.com/80/v2-51056addfd1a60b4d1de1546af250e88_1440w.webp'/>
        </a>
      
    
    
      <div class='text'>
        
          <h2>见自己，见天地，见众生，见道</h2>
        
        
        
          <p><span id="jinrishici-sentence">老顾的个人博客网站</span></p>
          <script src="https://sdk.jinrishici.com/v2/browser/jinrishici.js" charset="utf-8"></script>
        
      </div>
    
    
      <div class="social-wrapper">
        
          
            <a href="/my-blog/atom.xml"
              class="social fas fa-rss flat-btn"
              target="_blank"
              rel="external nofollow noopener noreferrer">
              
            </a>
          
        
          
            <a href="/my-blog/gu15328965713@gmail.com"
              class="social fas fa-envelope flat-btn"
              target="_blank"
              rel="external nofollow noopener noreferrer">
              
            </a>
          
        
          
            <a href="https://github.com/Engineer-Gu"
              class="social fab fa-github flat-btn"
              target="_blank"
              rel="external nofollow noopener noreferrer">
              
            </a>
          
        
          
            <a href="tencent://AddContact/?fromId=50&amp;fromSubId=1&amp;subcmd=all&amp;uin=1437594522"
              class="social fab fa-qq flat-btn"
              target="_blank"
              rel="external nofollow noopener noreferrer">
              
            </a>
          
        
      </div>
    
  </div>
</section>

    
  
  
  
    
  

  <div class="layout_sticky">    
    
      
<section class="widget side_toc">
  
  <header>
    
      <i style="color: " class="fas fa-list fa-fw" aria-hidden="true"></i><span class='name' style="color: ">本文目录</span>
    
  </header>


  <div class='content'>
    <div class="toc-main">
      <div class="toc-content">
        <!-- <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%B4%A2%E5%AF%8C%E7%9A%84%E6%9C%AC%E8%B4%A8"><span class="toc-text">财富的本质</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E7%AE%97%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是算出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E6%AF%94%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是比出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E8%AF%95%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是试出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E8%B0%88%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是谈出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E5%A0%86%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是堆出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%94%9F%E6%84%8F%E6%98%AF%E9%80%80%E5%87%BA%E6%9D%A5%E7%9A%84"><span class="toc-text">生意是退出来的</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%8E%BB%E6%9C%89%E9%92%B1%E7%9A%84%E5%9C%B0%E6%96%B9%E8%B5%9A%E9%92%B1"><span class="toc-text">去有钱的地方赚钱</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%B7%9F%E6%9C%89%E9%92%B1%E7%9A%84%E4%BA%BA%E8%B5%9A%E9%92%B1"><span class="toc-text">跟有钱的人赚钱</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%B5%9A%E6%9C%89%E9%92%B1%E4%BA%BA%E7%9A%84%E9%92%B1"><span class="toc-text">赚有钱人的钱</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%80%BB%E7%BB%93"><span class="toc-text">总结</span></a></li></ol> -->
        <div class="toc"></div>
      </div>
    </div>
  </div>
</section>
<!-- 手机端目录按钮 -->
<div id="toc-mobile-btn">
  <i class="fas fa-list-ul" aria-hidden="true"></i>
</div>

      
  <section class="widget side_recent_post">
    
  <header>
    
      <a style="color: " href='/tags/'><i class="fas fa-book fa-fw" aria-hidden="true"></i><span class='name'>最新文章</span></a>
    
  </header>


    <div class='content'>
      
      <!-- hash算法 -->
      
      <div class="aside-list">
        
          <div class="aside-list-item">
            
            
            

            <div class="post-img-box">
              <a href="/my-blog/2024/03/15/%E5%B0%86%E5%89%8D%E5%90%8E%E7%AB%AF%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2%E5%9C%A8%E6%9C%AC%E5%9C%B0%20Docker%20%E4%B8%8A/" class="post-img " style="background-size: cover; 
                background-position: center center;">
                <img class="lazyload lazyload placeholder" style="width:100%;height:100%;object-fit:cover;" data-src="https://pica.zhimg.com/v2-4aeccd941d89a30c21e31a4ea393f21a_r.jpg" class="lazyload placeholder" data-srcset="https://pica.zhimg.com/v2-4aeccd941d89a30c21e31a4ea393f21a_r.jpg" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
              </a>
            </div>
            <div class="post-date-title">
              <div>
                
                  <span class="post-date">03-15</span>
                
              </div>
              <a class="post-title" href="/my-blog/2024/03/15/%E5%B0%86%E5%89%8D%E5%90%8E%E7%AB%AF%E9%A1%B9%E7%9B%AE%E9%83%A8%E7%BD%B2%E5%9C%A8%E6%9C%AC%E5%9C%B0%20Docker%20%E4%B8%8A/">将前后端项目部署在本地 Docker 上</a>
            </div>
          </div>
        
          <div class="aside-list-item">
            
            
            

            <div class="post-img-box">
              <a href="/my-blog/2024/02/14/%E6%96%87%E4%BB%B6%E5%AF%BC%E5%87%BA%E4%B8%8B%E8%BD%BD%E9%9C%80%E6%B1%82%E5%89%8D%E5%90%8E%E7%AB%AF%E5%AE%9E%E7%8E%B0/" class="post-img " style="background-size: cover; 
                background-position: center center;">
                <img class="lazyload lazyload placeholder" style="width:100%;height:100%;object-fit:cover;" data-src="https://picx.zhimg.com/80/v2-b44931ea513e5f7b3b06f2703f79653c_1440w.webp" class="lazyload placeholder" data-srcset="https://picx.zhimg.com/80/v2-b44931ea513e5f7b3b06f2703f79653c_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
              </a>
            </div>
            <div class="post-date-title">
              <div>
                
                  <span class="post-date">02-14</span>
                
              </div>
              <a class="post-title" href="/my-blog/2024/02/14/%E6%96%87%E4%BB%B6%E5%AF%BC%E5%87%BA%E4%B8%8B%E8%BD%BD%E9%9C%80%E6%B1%82%E5%89%8D%E5%90%8E%E7%AB%AF%E5%AE%9E%E7%8E%B0/">文件导出下载需求前后端实现</a>
            </div>
          </div>
        
          <div class="aside-list-item">
            
            
            

            <div class="post-img-box">
              <a href="/my-blog/2024/01/30/%E5%9F%BA%E4%BA%8EMinIO%E5%AE%9E%E7%8E%B0%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/" class="post-img " style="background-size: cover; 
                background-position: center center;">
                <img class="lazyload lazyload placeholder" style="width:100%;height:100%;object-fit:cover;" data-src="https://pic4.zhimg.com/80/v2-83ea273b88e119d9615aed0d89aad4ab_1440w.webp" class="lazyload placeholder" data-srcset="https://pic4.zhimg.com/80/v2-83ea273b88e119d9615aed0d89aad4ab_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
              </a>
            </div>
            <div class="post-date-title">
              <div>
                
                  <span class="post-date">01-30</span>
                
              </div>
              <a class="post-title" href="/my-blog/2024/01/30/%E5%9F%BA%E4%BA%8EMinIO%E5%AE%9E%E7%8E%B0%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD/">基于MinIO实现文件上传下载</a>
            </div>
          </div>
        
          <div class="aside-list-item">
            
            
            

            <div class="post-img-box">
              <a href="/my-blog/2023/12/24/%E3%80%8A%E5%A4%A7%E5%9E%8B%E7%BD%91%E7%AB%99%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" class="post-img " style="background-size: cover; 
                background-position: center center;">
                <img class="lazyload lazyload placeholder" style="width:100%;height:100%;object-fit:cover;" data-src="https://pica.zhimg.com/v2-e466c5ffb776c583588566c4297de880_r.jpg" class="lazyload placeholder" data-srcset="https://pica.zhimg.com/v2-e466c5ffb776c583588566c4297de880_r.jpg" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
              </a>
            </div>
            <div class="post-date-title">
              <div>
                
                  <span class="post-date">12-24</span>
                
              </div>
              <a class="post-title" href="/my-blog/2023/12/24/%E3%80%8A%E5%A4%A7%E5%9E%8B%E7%BD%91%E7%AB%99%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">《大型网站技术架构》读书笔记</a>
            </div>
          </div>
        
          <div class="aside-list-item">
            
            
            

            <div class="post-img-box">
              <a href="/my-blog/2023/11/06/%E3%80%8A%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93-%E4%BB%8E%E5%B0%8F%E5%B7%A5%E5%88%B0%E4%B8%93%E5%AE%B6%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" class="post-img " style="background-size: cover; 
                background-position: center center;">
                <img class="lazyload lazyload placeholder" style="width:100%;height:100%;object-fit:cover;" data-src="https://picx.zhimg.com/80/v2-85c31120acff76826ab53ea8934ef4bb_1440w.webp" class="lazyload placeholder" data-srcset="https://picx.zhimg.com/80/v2-85c31120acff76826ab53ea8934ef4bb_1440w.webp" srcset="https://pic1.zhimg.com/v2-cd38920285d125be80b3eb504052c550_b.webp" alt="">
              </a>
            </div>
            <div class="post-date-title">
              <div>
                
                  <span class="post-date">11-06</span>
                
              </div>
              <a class="post-title" href="/my-blog/2023/11/06/%E3%80%8A%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BF%AE%E7%82%BC%E4%B9%8B%E9%81%93-%E4%BB%8E%E5%B0%8F%E5%B7%A5%E5%88%B0%E4%B8%93%E5%AE%B6%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/">《程序员修炼之道:从小工到专家》读书笔记</a>
            </div>
          </div>
        
      </div>
    </div>
  </section>

    
  </div>
</aside>

  <!-- 图片放大 Wrap images with fancybox support -->
  <script src="/my-blog/js/wrapImage.js"></script>
</div>

<!-- 文章详情页背景图 -->
<div id="appBgSwiper" style="position: fixed;left: 0;top: 0;width: 100%;height: 100%;z-index: -2;"
	:style="{'background-color': bgColor ? bgColor : 'transparent'}">
	<transition-group tag="ul" :name="names">
		<li v-for='(image,index) in img' :key='index' v-show="index === mark" class="bg-swiper-box">
			<img :src="image" class="bg-swiper-img no-lazy">
		</li>
	</transition-group>
</div>
<script>
	var vm = new Vue({
		el: '#appBgSwiper',
		data: {
			names: '' || 'fade' || 'fade', // translate-fade fade
			mark: 0,
			img: [],
			bgColor: '',
			time: null
		},
		methods: {   //添加方法
			change(i, m) {
				if (i > m) {
					// this.names = 'fade';
				} else if (i < m) {
					// this.names = 'fade';
				} else {
					return;
				}
				this.mark = i;
			},
			prev() {
				// this.names = 'fade';
				this.mark--;
				if (this.mark === -1) {
					this.mark = 3;
					return
				}
			},
			next() {
				// this.names = 'fade';
				this.mark++;
				if (this.mark === this.img.length) {
					this.mark = 0;
					return
				}
			},
			autoPlay() {
				// this.names = 'fade';
				this.mark++;
				if (this.mark === this.img.length) {
					this.mark = 0;
					return
				}
			},
			play() {
				let bgImgDelay = '' || '180000'
				let delay = parseInt(bgImgDelay) || 180000;
				this.time = setInterval(this.autoPlay, delay);
			},
			enter() {
				clearInterval(this.time);
			},
			leave() {
				this.play();
			}
		},
		created() {
			this.play()
		},
		beforeDestroy() {
			clearInterval(this.time);
		},
		mounted() {
			let prop = '' || '';
			let isImg = prop.includes('.bmp') || prop.includes('.jpg') || prop.includes('.png') || prop.includes('.tif') || prop.includes('.gif') || prop.includes('.pcx') || prop.includes('.tga') || prop.includes('.exif') || prop.includes('.fpx') || prop.includes('.psd') || prop.includes('.cdr') || prop.includes('.pcd') || prop.includes('.dxf') || prop.includes('.ufo') || prop.includes('.eps') || prop.includes('.ai') || prop.includes('.raw') || prop.includes('.WMF') || prop.includes('.webp') || prop.includes('.jpeg') || prop.includes('http://') || prop.includes('https://')
			if (isImg) {
				let img = prop.split(',');
				let configRoot = '/my-blog/'
				let arrImg = [];
				img.forEach(el => {
					var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
					var objExp = new RegExp(Expression);

					if (objExp.test(el)) {
						// http or https
						arrImg.push(el);
					} else {
						// 非http or https开头
						// 本地文件
						let firstStr = el.charAt(0);
						if (firstStr == '/') {
							el = el.substr(1); // 删除第一个字符 '/',因为 configRoot最后一个字符为 /
						}
						el = configRoot + el;
						arrImg.push(el);
					}
				})
				this.img = arrImg;
			} else {
				this.bgColor = prop;
			}
		}
	})
</script>

<style>
	.bg-swiper-box {
		position: absolute;
		display: block;
		width: 100%;
		height: 100%;
	}

	.bg-swiper-img {
		object-fit: cover;
		width: 100%;
		height: 100%;
	}
</style>




  <script>
  function loadMermaid() {
    if (document.getElementsByClassName('mermaid').length) {
      if (window.mermaidJsLoad) mermaid.init()
      else {
        loadScript('https://unpkg.com/mermaid/dist/mermaid.min.js').then(() => {
          window.mermaidJsLoad = true
          mermaid.initialize({
            theme: 'default',
          })
          if ('true') {
            mermaid.init();
          }
        })
      }
    }
  };
  document.addEventListener("DOMContentLoaded", function () {
    loadMermaid();
  })

  document.addEventListener('pjax:complete', function () {
    loadMermaid();
  })
  
</script>


      </main>
    </div>

    <!-- 页脚 -->
    
  
  
    <!-- 底部鱼儿跳动效果，依赖于jquery-->
<div id="j-fish-skip" style=" position: relative;height: 153px;width: auto;"></div>
<script>
  var RENDERER = {
    POINT_INTERVAL: 5,
    FISH_COUNT: 3,
    MAX_INTERVAL_COUNT: 50,
    INIT_HEIGHT_RATE: .5,
    THRESHOLD: 50,
    FISH_COLOR: '',
    init: function () {
      this.setFishColor(); this.setParameters(), this.reconstructMethods(), this.setup(), this.bindEvent(), this.render()
    },
    setFishColor: function () {
      let isDark = JSON.parse(localStorage.getItem('dark')) || JSON.parse('false');
      if (isDark) {
        this.FISH_COLOR = '#222'; // 暗黑色，有时间把这整成一个变量
      } else {
        this.FISH_COLOR = '' || 'rgba(66, 185, 133, 0.8)';
      }
    },
    setParameters: function () {
      this.$window = $(window), this.$container = $("#j-fish-skip"), this.$canvas = $("<canvas />"), this.context = this.$canvas.appendTo(this.$container).get(0).getContext("2d"), this.points = [], this.fishes = [], this.watchIds = []
    },
    createSurfacePoints: function () {
      var t = Math.round(this.width / this.POINT_INTERVAL);
      this.pointInterval = this.width / (t - 1), this.points.push(new SURFACE_POINT(this, 0));
      for (var i = 1; i < t; i++) {
        var e = new SURFACE_POINT(this, i * this.pointInterval),
          h = this.points[i - 1];
        e.setPreviousPoint(h), h.setNextPoint(e), this.points.push(e)
      }
    },
    reconstructMethods: function () {
      this.watchWindowSize = this.watchWindowSize.bind(this), this.jdugeToStopResize = this.jdugeToStopResize.bind(this), this.startEpicenter = this.startEpicenter.bind(this), this.moveEpicenter = this.moveEpicenter.bind(this), this.reverseVertical = this.reverseVertical.bind(this), this.render = this.render.bind(this)
    },
    setup: function () {
      this.points.length = 0, this.fishes.length = 0, this.watchIds.length = 0, this.intervalCount = this.MAX_INTERVAL_COUNT, this.width = this.$container.width(), this.height = this.$container.height(), this.fishCount = this.FISH_COUNT * this.width / 500 * this.height / 500, this.$canvas.attr({
        width: this.width,
        height: this.height
      }), this.reverse = !1, this.fishes.push(new FISH(this)), this.createSurfacePoints()
    },
    watchWindowSize: function () {
      this.clearTimer(), this.tmpWidth = this.$window.width(), this.tmpHeight = this.$window.height(), this.watchIds.push(setTimeout(this.jdugeToStopResize, this.WATCH_INTERVAL))
    },
    clearTimer: function () {
      for (; this.watchIds.length > 0;) clearTimeout(this.watchIds.pop())
    },
    jdugeToStopResize: function () {
      var t = this.$window.width(),
        i = this.$window.height(),
        e = t == this.tmpWidth && i == this.tmpHeight;
      this.tmpWidth = t, this.tmpHeight = i, e && this.setup()
    },
    bindEvent: function () {
      this.$window.on("resize", this.watchWindowSize), this.$container.on("mouseenter", this.startEpicenter), this.$container.on("mousemove", this.moveEpicenter)
    },
    getAxis: function (t) {
      var i = this.$container.offset();
      return {
        x: t.clientX - i.left + this.$window.scrollLeft(),
        y: t.clientY - i.top + this.$window.scrollTop()
      }
    },
    startEpicenter: function (t) {
      this.axis = this.getAxis(t)
    },
    moveEpicenter: function (t) {
      var i = this.getAxis(t);
      this.axis || (this.axis = i), this.generateEpicenter(i.x, i.y, i.y - this.axis.y), this.axis = i
    },
    generateEpicenter: function (t, i, e) {
      if (!(i < this.height / 2 - this.THRESHOLD || i > this.height / 2 + this.THRESHOLD)) {
        var h = Math.round(t / this.pointInterval);
        h < 0 || h >= this.points.length || this.points[h].interfere(i, e)
      }
    },
    reverseVertical: function () {
      this.reverse = !this.reverse;
      for (var t = 0, i = this.fishes.length; t < i; t++) this.fishes[t].reverseVertical()
    },
    controlStatus: function () {
      for (var t = 0, i = this.points.length; t < i; t++) this.points[t].updateSelf();
      for (t = 0, i = this.points.length; t < i; t++) this.points[t].updateNeighbors();
      this.fishes.length < this.fishCount && 0 == --this.intervalCount && (this.intervalCount = this.MAX_INTERVAL_COUNT, this.fishes.push(new FISH(this)))
    },
    render: function () {
      requestAnimationFrame(this.render), this.controlStatus(), this.context.clearRect(0, 0, this.width, this.height), this.context.fillStyle = this.FISH_COLOR;
      for (var t = 0, i = this.fishes.length; t < i; t++) this.fishes[t].render(this.context);
      this.context.save(), this.context.globalCompositeOperation = "xor", this.context.beginPath(), this.context.moveTo(0, this.reverse ? 0 : this.height);
      for (t = 0, i = this.points.length; t < i; t++) this.points[t].render(this.context);
      this.context.lineTo(this.width, this.reverse ? 0 : this.height), this.context.closePath(), this.context.fill(), this.context.restore()
    }
  },
  SURFACE_POINT = function (t, i) {
    this.renderer = t, this.x = i, this.init()
  };
  SURFACE_POINT.prototype = {
    SPRING_CONSTANT: .03,
    SPRING_FRICTION: .9,
    WAVE_SPREAD: .3,
    ACCELARATION_RATE: .01,
    init: function () {
      this.initHeight = this.renderer.height * this.renderer.INIT_HEIGHT_RATE, this.height = this.initHeight, this.fy = 0, this.force = {
        previous: 0,
        next: 0
      }
    },
    setPreviousPoint: function (t) {
      this.previous = t
    },
    setNextPoint: function (t) {
      this.next = t
    },
    interfere: function (t, i) {
      this.fy = this.renderer.height * this.ACCELARATION_RATE * (this.renderer.height - this.height - t >= 0 ? -1 : 1) * Math.abs(i)
    },
    updateSelf: function () {
      this.fy += this.SPRING_CONSTANT * (this.initHeight - this.height), this.fy *= this.SPRING_FRICTION, this.height += this.fy
    },
    updateNeighbors: function () {
      this.previous && (this.force.previous = this.WAVE_SPREAD * (this.height - this.previous.height)), this.next && (this.force.next = this.WAVE_SPREAD * (this.height - this.next.height))
    },
    render: function (t) {
      this.previous && (this.previous.height += this.force.previous, this.previous.fy += this.force.previous), this.next && (this.next.height += this.force.next, this.next.fy += this.force.next), t.lineTo(this.x, this.renderer.height - this.height)
    }
  };
  var FISH = function (t) {
    this.renderer = t, this.init()
  };
  FISH.prototype = {
    GRAVITY: .4,
    init: function () {
      this.direction = Math.random() < .5, this.x = this.direction ? this.renderer.width + this.renderer.THRESHOLD : -this.renderer.THRESHOLD, this.previousY = this.y, this.vx = this.getRandomValue(4, 10) * (this.direction ? -1 : 1), this.renderer.reverse ? (this.y = this.getRandomValue(1 * this.renderer.height / 10, 4 * this.renderer.height / 10), this.vy = this.getRandomValue(2, 5), this.ay = this.getRandomValue(.05, .2)) : (this.y = this.getRandomValue(6 * this.renderer.height / 10, 9 * this.renderer.height / 10), this.vy = this.getRandomValue(-5, -2), this.ay = this.getRandomValue(-.2, -.05)), this.isOut = !1, this.theta = 0, this.phi = 0
    },
    getRandomValue: function (t, i) {
      return t + (i - t) * Math.random()
    },
    reverseVertical: function () {
      this.isOut = !this.isOut, this.ay *= -1
    },
    controlStatus: function (t) {
      this.previousY = this.y, this.x += this.vx, this.y += this.vy, this.vy += this.ay, this.renderer.reverse ? this.y > this.renderer.height * this.renderer.INIT_HEIGHT_RATE ? (this.vy -= this.GRAVITY, this.isOut = !0) : (this.isOut && (this.ay = this.getRandomValue(.05, .2)), this.isOut = !1) : this.y < this.renderer.height * this.renderer.INIT_HEIGHT_RATE ? (this.vy += this.GRAVITY, this.isOut = !0) : (this.isOut && (this.ay = this.getRandomValue(-.2, -.05)), this.isOut = !1), this.isOut || (this.theta += Math.PI / 20, this.theta %= 2 * Math.PI, this.phi += Math.PI / 30, this.phi %= 2 * Math.PI), this.renderer.generateEpicenter(this.x + (this.direction ? -1 : 1) * this.renderer.THRESHOLD, this.y, this.y - this.previousY), (this.vx > 0 && this.x > this.renderer.width + this.renderer.THRESHOLD || this.vx < 0 && this.x < -this.renderer.THRESHOLD) && this.init()
    },
    render: function (t) {
      t.save(), t.translate(this.x, this.y), t.rotate(Math.PI + Math.atan2(this.vy, this.vx)), t.scale(1, this.direction ? 1 : -1), t.beginPath(), t.moveTo(-30, 0), t.bezierCurveTo(-20, 15, 15, 10, 40, 0), t.bezierCurveTo(15, -10, -20, -15, -30, 0), t.fill(), t.save(), t.translate(40, 0), t.scale(.9 + .2 * Math.sin(this.theta), 1), t.beginPath(), t.moveTo(0, 0), t.quadraticCurveTo(5, 10, 20, 8), t.quadraticCurveTo(12, 5, 10, 0), t.quadraticCurveTo(12, -5, 20, -8), t.quadraticCurveTo(5, -10, 0, 0), t.fill(), t.restore(), t.save(), t.translate(-3, 0), t.rotate((Math.PI / 3 + Math.PI / 10 * Math.sin(this.phi)) * (this.renderer.reverse ? -1 : 1)), t.beginPath(), this.renderer.reverse ? (t.moveTo(5, 0), t.bezierCurveTo(10, 10, 10, 30, 0, 40), t.bezierCurveTo(-12, 25, -8, 10, 0, 0)) : (t.moveTo(-5, 0), t.bezierCurveTo(-10, -10, -10, -30, 0, -40), t.bezierCurveTo(12, -25, 8, -10, 0, 0)), t.closePath(), t.fill(), t.restore(), t.restore(), this.controlStatus(t)
    }
  }, $(function () {
    RENDERER.init()
    $('.dark').click(function () {
      setTimeout(() => {
        RENDERER.setFishColor();
        RENDERER.context.fill();
      });
    })
  });
</script>
  
  <div class="footer bg-color">
    <div class="footer-main">
      
        
          <div class="link">
            
              
                <a href="/my-blog/atom.xml" class="social">
                  
                    <i class="fas fa-rss" aria-hidden="true"></i>
                  
                </a>
              
            
              
                <a href="mailto:1437594522@qq.com" class="social">
                  
                    <i class="fas fa-envelope" aria-hidden="true"></i>
                  
                </a>
              
            
              
                <a target="_blank" rel="noopener" href="https://github.com/Engineer-Gu" class="social">
                  
                    <i class="fab fa-github" aria-hidden="true"></i>
                  
                </a>
              
            
              
                <a href="tencent://AddContact/?fromId=50&amp;fromSubId=1&amp;subcmd=all&amp;uin=1437594522" class="social">
                  
                    <i class="fab fa-qq" aria-hidden="true"></i>
                  
                </a>
              
            
          </div>
        
      
        
          <div class="footer-copyright">
            <p>Copyright © 2019 - 2024 <a target="_blank" rel="noopener" href="https://github.com/Engineer-Gu">老顾</a> </p>

          </div>
        
      
    </div>
  </div>



    <!-- 渲染暗黑按钮 -->
    
      <div class="dark">
  <div class="dark-content">
    <i class="fas fa-moon" aria-hidden="true"></i>
    <!-- <span>关灯</span> -->
  </div>
  
</div>

<script>
  $(function() {
    let isDark = JSON.parse(localStorage.getItem('dark'))  || JSON.parse('false');
    if (isDark) {
      $(".dark-content").replaceWith(
          `
          <div class='dark-content'>
            <i class="fas fa-lightbulb" aria-hidden="true"></i>
          </div>
          `
        );
    }
    $('.dark').click(function() {
      if ($(document.body).is('.darkModel')) {
        $(document.body).removeClass('darkModel');
        localStorage.setItem('dark', false);
        $(".dark-content").replaceWith(
          `
          <div class='dark-content'>
            <i class="fas fa-moon" aria-hidden="true"></i>
          </div>
          `
        );
      } else {
        $(document.body).addClass('darkModel');
        localStorage.setItem('dark', true);
        $(".dark-content").replaceWith(
          `
          <div class='dark-content'>
            <i class="fas fa-lightbulb" aria-hidden="true"></i>
          </div>
          `
        );
      }
    })
  })
</script>
    
    <!-- 渲染回到顶部按钮 -->
    
      <div class="goTop top-btn-color" pointer>
  <i class="fas fa-arrow-up" aria-hidden="true"></i>
</div>
<script src="/my-blog/js/goTop.js"></script>

    
    <!-- 渲染左下角音乐播放器 -->
    
      <link rel="stylesheet" href="/my-blog/js/aplayer/APlayer@1.10.1.min.css">
<style>
.aplayer .aplayer-lrc p {
  
  display: none;
  
  font-size: 12px;
  font-weight: 700;
  line-height: 16px !important;
}

.aplayer .aplayer-lrc p.aplayer-lrc-current {
  
  display: none;
  
  font-size: 15px;
  color: #42b983;
}


.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
  left: -66px !important;
}

.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
  left: 0px !important;
}


</style>
<meting-js  
  class=""
  server="tencent"
  type="playlist"
  id="8062553743"
  fixed='true'
  autoplay='false'
  theme='#42b983'
  loop='all'
  order='random'
  preload='auto'
  volume='0.7'
  list-folded='true'
>
</meting-js>

<!-- <style>
  #aplayer {
    position: fixed;
    left: 0;
    bottom: 300px;
  }
</style> -->
<script src="https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.js"></script>
<script src="https://unpkg.com/meting@2/dist/Meting.min.js"></script>
    

    <!-- 图片放大 -->
    
      <script src="/my-blog/js/fancybox/jquery.fancybox.min.js"></script>
    

    <!-- 百度解析 -->
    <!-- Baidu Analytics -->

    <!-- Baidu Push -->

<script>
    (function () {
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        } else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>

    
    <!-- 背景彩带 -->
    
      <script type="text/javascript" size="100" alpha='0.4' zIndex="-1" src="/my-blog/js/ribbon.min.js"></script>
    

    <script src="/my-blog/js/utils/index.js"></script>
    <script src="/my-blog/js/app.js"></script>
    
    <!-- 文章目录所需js -->
<!-- <link href="/my-blog/js/tocbot/tocbot.css" rel="stylesheet">
<script src="/my-blog/js/tocbot/tocbot.min.js"></script> -->

<script src="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.18.2/tocbot.min.js"></script>


<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/tocbot/4.18.2/tocbot.css">

<script>
  var headerEl = 'h2, h3, h4',  //headers 
    content = '.post-detail',//文章容器
    idArr = {};  //标题数组以确定是否增加索引id
  //add #id
  var option = {
    // Where to render the table of contents.
    tocSelector: '.toc',
    // Where to grab the headings to build the table of contents.
    contentSelector: content,
    // Which headings to grab inside of the contentSelector element.
    headingSelector: headerEl,
    scrollSmooth: true,
    scrollSmoothOffset: -70,
    // headingsOffset: -($(window).height() * 0.4 - 45),
    headingsOffset: -($(window).height() * 0.4 - 70),
    // positionFixedSelector: '.toc-main',
    // positionFixedClass: 'is-position-fixed',
    fixedSidebarOffset: 'auto',
    activeLinkClass: 'is-active-link',
    orderedList: true,
    collapseDepth: 20,
    // onClick: function (e) {},
  }
  if ($('.toc').length > 0) {

    $(content).children(headerEl).each(function () {
      //去除空格以及多余标点
      var headerId = $(this).text().replace(/[\s|\~|`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\_|\+|\=|\||\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?|\：|\，|\。]/g, '');

      headerId = headerId.toLowerCase();
      if (idArr[headerId]) {
        //id已经存在
        $(this).attr('id', headerId + '-' + idArr[headerId]);
        idArr[headerId]++;
      }
      else {
        //id未存在
        idArr[headerId] = 1;
        $(this).attr('id', headerId);
      }
    });

    document.addEventListener("DOMContentLoaded", function () {
      tocbot.init(option);
      mobileTocClick();
    });

  }

  window.tocScrollFn = function () {
    return bamboo.throttle(function () {
      findHeadPosition();
    }, 100)()
  }
  window.addEventListener('scroll', tocScrollFn);

  const findHeadPosition = function (top) {
    if ($('.toc-list').length <= 0) {
      return false;
    }
    setTimeout(() => {  // or DOMContentLoaded 
      autoScrollToc();
    }, 0);
  }

  const autoScrollToc = function () {
    const $activeItem = document.querySelector('.is-active-link');
    const $cardToc = document.querySelector('.toc-content');
    const activePosition = $activeItem.getBoundingClientRect().top
    const sidebarScrollTop = $cardToc.scrollTop
    if (activePosition > (document.documentElement.clientHeight - 100)) {
      $cardToc.scrollTop = sidebarScrollTop + 150
    }
    if (activePosition < 150) {
      $cardToc.scrollTop = sidebarScrollTop - 150
    }
  }

  document.addEventListener('pjax:send', function () {
    if ($('.toc').length) {
      tocbot.destroy();
    }
  });

  document.addEventListener('pjax:complete', function () {
    if ($('.toc').length) {
      tocbot.init(option);
      mobileTocClick();
    }
  });
  
  // 手机端toc按钮点击出现目录
  const mobileTocClick = function () {
    const $cardTocLayout = document.getElementsByClassName('side_toc')[0];
    const $cardToc = $cardTocLayout.getElementsByClassName('toc-content')[0];
    let right = '45px';
    if (window.innerWidth >= 551 && window.innerWidth <= 992) {
      right = '100px'
    }
    const mobileToc = {
      open: () => {
        $cardTocLayout.style.cssText = 'animation: toc-open .3s; opacity: 1; right: ' + right
      },

      close: () => {
        $cardTocLayout.style.animation = 'toc-close .2s'
        setTimeout(() => {
          $cardTocLayout.style.cssText = "opacity:''; animation: ''; right: ''"
        }, 100)
      }
    }
    document.getElementById('toc-mobile-btn').addEventListener('click', () => {
      if (window.getComputedStyle($cardTocLayout).getPropertyValue('opacity') === '0') mobileToc.open()
      else mobileToc.close()
    })

    $cardToc.addEventListener('click', (e) => {
      if (window.innerWidth < 992) { // 小于992px的时候
        mobileToc.close()
      }
    })
  }
</script>

<style>
  /* .is-position-fixed {
    position: sticky !important;
    top: 74px;
  }

  .toc-main ul {
    counter-reset: show-list;
  }

  .toc-main ul li::before {
    content: counter(item)".";
    display: block;
    position: absolute;
    left: 12px;
    top: 0;
  } */
</style>
 

<!-- 设置导航背景 -->
<script>
  let setHeaderClass = () => {
    const nav = $('#navHeader');
    const navTop = nav.outerHeight();
    const winTop = $(window).scrollTop();
    if(winTop > navTop) {
      nav.addClass('header-bg-color');
    }
    else {
      nav.removeClass('header-bg-color');
    }
  };

  let scrollCollect = () => {
    return bamboo.throttle(function (e) {
      setHeaderClass();
    }, 200)()
  }

  let initHeaderBg = () => {
    setHeaderClass();
  }

  setHeaderClass();
  window.addEventListener('scroll', scrollCollect);

  document.addEventListener('pjax:send', function () {
    window.removeEventListener('scroll', scrollCollect)
  })
  document.addEventListener('pjax:complete', function () {
    window.addEventListener('scroll', scrollCollect);
    setHeaderClass();
  })
</script> 

<!-- 渲染issues标签里的内容 -->
<script>
  function loadIssuesJS() {
    if ($(".post-detail").find(".issues-api").length == 0) {
      return;
    } 
    loadScript('/my-blog/js/issues/index.js');
  };
  $(function () {
    loadIssuesJS();
  });
  document.addEventListener('pjax:complete', function () {
    if (typeof IssuesAPI == "undefined") {
      loadIssuesJS();
    }
  })
</script>

<!-- 输入框打字特效 -->
<!-- 输入框打字特效 -->

  <script src="/my-blog/js/activate-power-mode.js"></script>
  <script>
    POWERMODE.colorful = true;  // 打开随机颜色特效
    POWERMODE.shake = false;    // 关闭输入框抖动
    document.body.addEventListener('input', POWERMODE);//监听打字事件
  </script>


<!-- markdown代码一键复制功能 -->

  <link rel="stylesheet" href="https://unpkg.com/v-plugs-ayu/lib/ayu.css">
  <script src="https://unpkg.com/v-plugs-ayu/lib/ayu.umd.min.js"></script>
  <script src="/my-blog/js/clipboard/clipboard.min.js"></script>
  <div id="appCopy">
  </div>
  <script data-pjax>
    var vm = new Vue({
      el: '#appCopy',
      data: {
      },
      computed: {
      },
      mounted() {
        const that = this;
        var copy = '复制';
        /* code */
        var initCopyCode = function () {
          var copyHtml = '';
          copyHtml += '<button class="btn-copy" data-clipboard-snippet="" style="position:absolute;top:0;right:0;z-index:1;">';
          copyHtml += '<i class="fas fa-copy"></i><span>' + copy + '</span>';
          copyHtml += '</button>';
          $(".post-detail pre").not('.gutter pre').wrap("<div class='codeBox' style='position:relative;width:100%;'></div>")
          $(".post-detail pre").not('.gutter pre').before(copyHtml);
          new ClipboardJS('.btn-copy', {
            target: function (trigger) {
              return trigger.nextElementSibling;
            }
          });
        }
        initCopyCode();
        $('.btn-copy').unbind('click').bind('click', function () {
          doSomething();
        })
        $(document).unbind('keypress').bind('keypress', function (e) {
          if (e.ctrlKey && e.keyCode == 67) {
            doSomething();
          }
        })

        function doSomething() {
          that.$notify({
            title: "成功",
            content: "代码已复制，请遵守相关授权协议。",
            type: 'success'
          })
        }
      },
      methods: {
      },
      created() { }
    })
  </script>
  

<!-- 图片懒加载 -->
<script defer src="https://unpkg.com/vanilla-lazyload@17.1.0/dist/lazyload.min.js"></script>
<script>
  // https://www.npmjs.com/package/vanilla-lazyload
  // Set the options globally
  // to make LazyLoad self-initialize
  window.lazyLoadOptions = {
    elements_selector: ".lazyload",
    threshold: 0
  };
  // Listen to the initialization event
  // and get the instance of LazyLoad
  window.addEventListener(
    "LazyLoad::Initialized",
    function (event) {
      window.lazyLoadInstance = event.detail.instance;
    },
    false
  );
  document.addEventListener('DOMContentLoaded', function () {
    lazyLoadInstance.update();
  });
  document.addEventListener('pjax:complete', function () {
    lazyLoadInstance.update();
  });
</script>


<!-- 卡片滚动动画 -->
   

<!-- 评论所需js -->

  
    <!-- 弹幕所需的css和js -->
    
<!-- 具体js，请前往valine/script.ejs查看 -->

    <script>
  var requiredFields = 'nick,mail';
  requiredFields = requiredFields.split(',');
  comment_el = '.comment';
  let looperValine = null;
  load_valine = function () {
    if ($(comment_el).length) {
      var valine = new Valine({
        el: '#vcomment',
        path: window.location.pathname,
        notify: false,
        verify: false,
        app_id: "6BozzCZTlWMB1BNp9HE0yqtW-gzGzoHsz",
        app_key: "1BuoV4FJKI4t3NIo0sYHWMno",
        placeholder: "客官，说点什么吧",
        avatar: "https://valine.js.org/avatar.html",
        master: "f5ee1285421e234a1dc13a9ea05951a1",   //博主邮箱md5
        tagMeta: ["博主","小伙伴","访客"],     //标识字段名
        friends: "",
        metaPlaceholder: { "nick": "昵称/QQ号", "mail": "邮箱" },
        requiredFields: requiredFields,
        enableQQ: true,
      });
      function debounce(fn) {
        var timerID = null
        return function () {
          var arg = arguments[0]   //获取事件
          if (timerID) {
            clearTimeout(timerID)
          }
          timerID = setTimeout(function () {
            fn(arg)              //事件传入函数
          }, 200)
        }
      }
      //查询评论 valine.Q('*').limit(7) -- 查询所有，限制7条, 下面的的代码是查询当前页面
      var themeDanmu = eval('false');
      var themeLoop = eval('true');
      var themeLooperTime = '5000' || 5000;
      var speed = '40' || 20;
      var isBarrager = true;
      if (themeDanmu == true) {
        do_barrager();
        if ($('.danmuBox').length <= 0) {
          $('.navbar').append('<div class="danmuBox"><div class="danmuBtn open"><span class="danmuCircle"></span><span class="danmuText">弹幕</span></div></div>');
        }
        $('.danmuBtn').on('click', debounce(
          function () {
            if ($('.danmuBtn').hasClass('open')) {
              $('.danmuBtn').removeClass('open')
              clearInterval(looperValine);
              $.fn.barrager.removeAll();
            } else {
              $('.danmuBtn').addClass("open");
              do_barrager();
            }
          }
        ))
      }
      function do_barrager() {
        isBarrager && valine.Q(window.location.pathname).find().then(function (comments) {
          // var num = 0; // 可以记录条数，循环调用的时候只取最新的评论放入弹幕中
          var run_once = true;
          var looper_time = themeLooperTime;
          var total = comments.length;
          // var looper = null;
          var index = 0;
          if (total > 0) {
            barrager();
          } else {
            // 当评论数为0的时候，自动关闭弹幕
            // $('.danmuBtn').removeClass('open');
          }
          function barrager() {
            if (run_once) {
              //如果是首次执行,则设置一个定时器,并且把首次执行置为false
              looperValine = setInterval(barrager, looper_time);
              run_once = false;
            }
            var content = comments[index]._serverData.comment;
            var email = comments[index]._serverData.mail;
            var link = comments[index]._serverData.link;
            var newcontent = content.substring(0, 50).replace(/<[^>]+>/g, "");
            //发布一个弹幕
            const item = {
              img: `https://q1.qlogo.cn/g?b=qq&nk=${email}&s=640`, //图片 
              info: newcontent, //文字 
              href: link, //链接 
              close: true, //显示关闭按钮 
              speed: speed, //延迟,单位秒,默认6 
              color: '#fff', //颜色,默认白色 
              old_ie_color: '#000000', //ie低版兼容色,不能与网页背景相同,默认黑色
            }
            $('body').barrager(item);
            //索引自增
            index++;
            //所有弹幕发布完毕，清除计时器。
            if (index == total) {
              clearInterval(looperValine);
              if (themeLoop === true) {
                setTimeout(function () {
                  do_barrager();
                }, 5000);
              } else {
                $('.danmuBtn').removeClass('open');
              }
              return false;
            }

          }
        })
      }
    }
  };
  $(document).ready(load_valine);
  document.addEventListener('pjax:send', function (e) {
    
  })
  document.addEventListener('pjax:complete', function () {
    load_valine();
  });
</script>

  


<!-- 鼠标点击特效 -->
<!-- 爱心点击 -->

  
    <script src="/my-blog/js/cursor/fireworks.js"></script>
  




  <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" data-pjax></script>


<!-- 轮播图标签 -->
<script>
  var bambooSwiperTag = {};
  function load_swiper() {
    if (!document.querySelectorAll(".post-swiper-container")[0]) return;
    loadCSS("https://unpkg.com/swiper@6/swiper-bundle.min.css")
    loadScript("https://unpkg.com/swiper@6/swiper-bundle.min.js").then(() => {
      pjax_swiper();
    });
  }

  load_swiper();

  function pjax_swiper() {
    bambooSwiperTag.swiper = new Swiper('.post-swiper-container', {
      slidesPerView: 'auto',
      spaceBetween: 8,
      centeredSlides: true,
      loop: true,
      autoplay: true ? {
        delay: 3000,
        stopOnLastSlide: false,
        disableOnInteraction: false,
      } : false,
      pagination: {
        el: '.swiper-pagination',
        clickable: true,
      },
      navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
      },
      on:{
        init: function(){
          swiperAnimateCache(this); //隐藏动画元素 
          swiperAnimate(this); //初始化完成开始动画
        }, 
        slideChangeTransitionEnd: function(){ 
          swiperAnimate(this); //每个slide切换结束时也运行当前slide动画
          //this.slides.eq(this.activeIndex).find('.ani').removeClass('ani'); 动画只展现一次，去除ani类名
        } 
      }
    });
  }

  document.addEventListener('pjax:complete', function () {
    if (!document.querySelectorAll(".post-swiper-container")[0]) return;
    if (typeof bambooSwiperTag.swiper === "undefined") {
      load_swiper();
    } else {
      pjax_swiper();
    }
  });
</script>
    <!-- pjax -->
    

<!-- pjax -->


  <script src="/my-blog/js/pjax@0.2.8/index.js"></script>
  
    <!-- 样式位于：source/css/_third-party/pjaxanimate.styl -->

<div class="pjax-animate">
  
    <div class="loading-circle"><div id="loader-circle"></div></div>
    <script>
      window.ShowLoading = function() {
        $(".loading-circle").css("display", "block");
      };
      window.HideLoading = function() {
        $(".loading-circle").css("display", "none");
      }
    </script>
  
	<script>
    document.addEventListener('pjax:complete', function () {
      window.HideLoading();
    })
    document.addEventListener('pjax:send', function () {
      window.ShowLoading();
    })
    document.addEventListener('pjax:error', function () {
      window.HideLoading();
    })
	</script>
</div>

  

  <script>
    var pjax = new Pjax({
      elements: 'a[href]:not([href^="#"]):not([href="javascript:void(0)"]):not([no-pjax])',   // 拦截正常带链接的 a 标签
      selectors: ["#pjax-container","title"],                                   // 根据实际需要确认重载区域
      cacheBust: false,   // url 地址追加时间戳，用以避免浏览器缓存
      timeout: 5000
    });

    document.addEventListener('pjax:send', function (e) {

      try {
        var currentUrl = window.location.pathname;
        var targetUrl = e.triggerElement.href;
        var banUrl = [""];
        if (banUrl[0] != "") {
          banUrl.forEach(item => {
            if(currentUrl.indexOf(item) != -1 || targetUrl.indexOf(item) != -1) {
              window.location.href = targetUrl;
            }
          });
        }
      } catch (error) {}

      $(window).unbind('resize');
      $(window).unbind('scroll');
      $(document).unbind('scroll');
      $(document).unbind('click');
      $('body').unbind('click');

    })
    
    document.addEventListener('pjax:complete', function () {
      $('script[data-pjax], .pjax-reload script').each(function () {
        $(this).parent().append($(this).remove());
      });
    });

    document.addEventListener('pjax:error', function (e) {
      window.location.href = e.triggerElement.href;
    })
    
    // 刷新不从顶部开始
    document.addEventListener("DOMContentLoaded", function () {
      history.scrollRestoration = 'auto';
    })
  </script>



  </body>
</html>